Merhaba değerli üstatlar. Json verilerimi düzenlemem gerektiği söyleniyor, ancak ben hala nerede hata yaptığımı bilemedim. Uğraştım bulamadım da, bu yüzden yardımınıza ihtiyacım var.
Yani verilerimin başında " karakterleri var. Örnek ( “user_id” ) gibi.
Bunun üstesinden nasıl gelebilirim ?
Öncelikle yazmış olduğum Accounts.py ;
import sqlite3 as sqlite
import Generator
import os
import json
import datetime
# Account Management
class Account:
# Props
def __init__(self, user_id, firstName, lastName,
email, username, password,
accountKEY, register_date):
#, Get & Set?
self.user_id = user_id
self.firstName = firstName
self.lastName = lastName
self.email = email
self.username = username
self.password = password
self.accountKEY = accountKEY
self.register_date = register_date
class UserRepository:
def __init__(self):
self.users = []
self.IsLoggedIn = False # Varsayılan olarak login olmamış.
self.currentUser = {}
self.loadUsers()
def loadUsers(self):
try:
if os.path.exists('AccInformation.json'): # True ise......
with open('AccInformation.json', 'r', encoding='utf-8') as file:
users = json.load(file)
for user in users:
user = json.loads(user)
newUser = Account(
user_id = user['user_id'],
firstName = user['firstName'],
lastName = user['lastName'],
email = user['email'],
username = user['username'],
password = user['password'],
accountKEY = user['accountKEY'],
register_date = user['register_date'])
self.users.append(newUser)
#print(self.users)
else:
print("""'AccInformation' adlı Dosya bulunamadı.""")
except json.decoder.JSONDecodeError:
print("Dosya içeriğinin dolu olduğundan emin olun.")
# Dışarıdan gelen user bilgisinin tipinin ise Account olmasını istiyoruz
def AccountRegister(self, user: Account):
self.users.append(user)
self.saveToFile()
#print(f"""'{user.user_id}' kimlikli kullanıcı başarıyla oluşturuldu.""")
def login(self, username, password):
for user in self.users:
if user.username == username and user.password == password:
self.IsLoggedIn = True
self.currentUser = user
def saveToFile(self):
list = []
for user in self.users:
list.append(json.dumps(user.__dict__))
with open('AccInformation.json', 'w', encoding='utf-8') as file: # listeyi gönderiyoruz ve dosya içerisine kaydediyoruz.
json.dump(list, file, indent=4)
# Create account
def CreateAccount(user_id, firstName, lastName, username, password, email, account_key=0, date_time=0):
repository = UserRepository()
igenerator = Generator.Production() # #For license and id...
#Auto construction
user_id = igenerator.id_generator()
account_key = igenerator.license_generator()
ock = datetime.datetime.now()
date_time = datetime.datetime.ctime(ock)
# Account Attribute
account = Account(user_id = user_id, firstName = firstName,
lastName = lastName, username = username,
password = password, email = email,
accountKEY = account_key, register_date = date_time)
repository.AccountRegister(account)
# Database
db = sqlite.connect("zyro.db")
im = db.cursor()
im.execute("""CREATE TABLE IF NOT EXISTS
account_manager(user_id, firstname, lastname,
username, password, email, acc_key, reg_date)""")
# Liste halinde tek seferde gönderiyoruz.
transferToDB = [user_id, firstName, lastName, username,
password, email, account_key, date_time]
im.execute("""INSERT INTO account_manager VALUES
(?, ?, ?, ?, ?, ?, ?, ?)""", transferToDB)
db.commit()
print("Veritabanı işleme başarıyla gerçekleşti.")
test = UserRepository()
test.CreateAccount("Ali", "Veli", "kirkdokuz", "123456789", "elli@gmail.com")
AccInformation.json adlı json içerikleri :
[
"{\"user_id\": 43144988050, \"firstName\": \"Sema\", \"lastName\": \"UZUN\", \"email\": \"sema12@gmail.com\", \"username\": \"semazen\", \"password\": \"123456789\", \"accountKEY\": \"QS3V-UPH1-NLJI-ZX28-0A96-YEDG\", \"register_date\": \"Tue Aug 31 14:21:03 2021\"}",
"{\"user_id\": 48523849070, \"firstName\": \"Falanca\", \"lastName\": \"Filanca\", \"email\": \"ffff@gmail.com\", \"username\": \"falanfilan\", \"password\": \"123456789\", \"accountKEY\": \"MBO3-IW4L-EV0H-G1YS-8T5A-DPRJ\", \"register_date\": \"Tue Aug 31 14:21:30 2021\"}",
"{\"user_id\": 98477414892, \"firstName\": \"Ali\", \"lastName\": \"Veli\", \"email\": \"elli@gmail.com\", \"username\": \"kirkdokuz\", \"password\": \"123456789\", \"accountKEY\": \"KQV2-X0RA-GBLT-H8F6-953D-WP7Y\", \"register_date\": \"Tue Aug 31 14:22:13 2021\"}"
]