Json oluşturmanın belirli bir isim kuralı var mı?

Merhaba, json dosya oluştururken belirli bir kural var mı?
Farklı dosya isimleriyle oluşturmaya çalışıyorum. Hata veriyor… (Hata mesajını en sona koydum çok karışıklık olmasın diye)

Mesela az önce “users.json” oluşturabiliyordum ama şuan users.json oluştururken hata veriyor :slight_smile: Evet atladığım bir şey var sanrıım da ne? :slight_smile:

Bunu neden soruyorum ;

Örnek 1 ve hata ;

if os.path.exists('db.json'):

            with open('db.json', 'r', encoding='utf-8') as file:

                users = json.load(file)

                for user in users:

                    user = json.loads(user)

                    newUser = User(username = user['username'], password = user['password'], email = user['email'])

                    self.users.append(newUser)

                print(self.users)

        else:

            print("Dosya yok.")

Ornek 2 ; herhangi bir hata yok…

    def loadUsers(self):
        
        # Dosya kontrol
        if os.path.exists('ornek.json'):
            with open('ornek.json', 'r', encoding='utf-8') as file:
                users = json.load(file)
                for user in users:
                    user = json.loads(user)
                    newUser = User(username = user['username'], password = user['password'], email = user['email'])
                    self.users.append(newUser)
                print(self.users)
        else:
            print("Dosya yok.")

Ornek 3 ve yine hata

def loadUsers(self):

        

        # Dosya kontrol

        if os.path.exists('GeneralInformation.json'):

            with open('GeneralInformation.json', 'r', encoding='utf-8') as file:

                users = json.load(file)

                for user in users:

                    user = json.loads(user)

                    newUser = User(username = user['username'], password = user['password'], email = user['email'])

                    self.users.append(newUser)

                print(self.users)

        else:

            print("Dosya yok.")

Hata mesajı ;

Traceback (most recent call last):
  File "f:\Education\ZyroServer\AccountKayitTest.py", line 50, in <module>
    repository = UserRepository()
  File "f:\Education\ZyroServer\AccountKayitTest.py", line 15, in __init__
    self.loadUsers()
  File "f:\Education\ZyroServer\AccountKayitTest.py", line 22, in loadUsers
    users = json.load(file)
  File "C:\Users\bilgi\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 293, in load
    return loads(fp.read(),
  File "C:\Users\bilgi\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "C:\Users\bilgi\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\bilgi\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Uzantisi .json olursa iyi olur.

Icerik bazli hatalar isim bazli hatalardan tamamen ayri. Yani boyle bir sey olamaz.

Yapilan islem de, alinan hata da JSON okumayla ilgili. Yukarida olustururken hata veriyor diyordun…

Okurken hata olusuyorsa okunan dosyanin icerigini de paylasman lazim.

["{“username”: “Ahmet”, “password”: “123”, “email”: “xcxx@gmail.com”}", “{“username”: “Burak”, “password”: “123456”, “email”: “xcxcx@gmail.com”}”]

tam olarak bu şekilde

file'i load etmeden once yazdirsana. print(file.readlines()) filan.

Ayrıca aib hocam, bu kardeşiniz size 1 ay önce stringlerle alakalı soru sorarken artık nelerle uğraşıyor görüyorsunuz :DD

Sorun halloldu. Visual studioyu kapatıp açtım ve dosyayı sildim kendim oluşturmadım. Problem çözüldü

Neymis? Dosyanin ici bosmus, degil mi? :slight_smile:

Cok iyi! Devam, devam!

3 Beğeni

Hocam hayır sorun tam olarak şurasıymış ;
Bu kısmı

user = json.load(user)

Şöyle düzelttim ;

user = json.loads(user)

Diğer türlü sadece 1 tane kayıt oluşturuyor ve ardından tekrar çalıştırmak istdiğim zaman işte yukarıdaki hataları veriyordu. Şimdi her türlü çalışıyor :smiley:

Bi dakka pardon ben o satiri gormemisim.

JSON icinde string array’i var, string’lerin icinde de tekrar JSON var? Her sey tek bir JSON olabilirdi.

1 Beğeni