JSONDecodeError json dosyası yüklenirken [duplicate]

Nov 01 2020

test.jsonAşağıdaki içeriğe sahip bir json dosyası verildiğinde :

{'review/appearance': 2.5, 'beer/style': 'Hefeweizen', 'review/palate': 1.5, 'review/taste': 1.5, 'beer/name': 'Sausa Weizen', 'review/timeUnix': 1234817823, 'beer/ABV': 5.0, 'beer/beerId': '47986', 'beer/brewerId': '10325', 'review/timeStruct': {'isdst': 0, 'mday': 16, 'hour': 20, 'min': 57, 'sec': 3, 'mon': 2, 'year': 2009, 'yday': 47, 'wday': 0}, 'review/overall': 1.5, 'review/text': 'A lot of foam. But a lot.\tIn the smell some banana, and then lactic and tart. Not a good start.\tQuite dark orange in color, with a lively carbonation (now visible, under the foam).\tAgain tending to lactic sourness.\tSame for the taste. With some yeast and banana.', 'user/profileName': 'stcules', 'review/aroma': 2.0}
{'review/appearance': 3.0, 'beer/style': 'English Strong Ale', 'review/palate': 3.0, 'review/taste': 3.0, 'beer/name': 'Red Moon', 'review/timeUnix': 1235915097, 'beer/ABV': 6.2, 'beer/beerId': '48213', 'beer/brewerId': '10325', 'review/timeStruct': {'isdst': 0, 'mday': 1, 'hour': 13, 'min': 44, 'sec': 57, 'mon': 3, 'year': 2009, 'yday': 60, 'wday': 6}, 'review/overall': 3.0, 'review/text': 'Dark red color, light beige foam, average.\tIn the smell malt and caramel, not really light.\tAgain malt and caramel in the taste, not bad in the end.\tMaybe a note of honey in teh back, and a light fruitiness.\tAverage body.\tIn the aftertaste a light bitterness, with the malt and red fruit.\tNothing exceptional, but not bad, drinkable beer.', 'user/profileName': 'stcules', 'review/aroma': 2.5}
{'review/appearance': 3.0, 'beer/style': 'Foreign / Export Stout', 'review/palate': 3.0, 'review/taste': 3.0, 'beer/name': 'Black Horse Black Beer', 'review/timeUnix': 1235916604, 'beer/ABV': 6.5, 'beer/beerId': '48215', 'beer/brewerId': '10325', 'review/timeStruct': {'isdst': 0, 'mday': 1, 'hour': 14, 'min': 10, 'sec': 4, 'mon': 3, 'year': 2009, 'yday': 60, 'wday': 6}, 'review/overall': 3.0, 'review/text': 'Almost totally black. Beige foam, quite compact, not bad.\tLight smell, just a bit of roast, and some hop. A bit too light.\tThe taste is light oo, and drinkable, with some malt, roast, hints of coffee.\tNothing exceptional, but after all drinkable and pleasant.\tLight to average body.\tIn the aftertaste some dust, somr roast, hint of caramel, and a bit of bitterness.\tNo defect, drinkable, not bad.', 'user/profileName': 'stcules', 'review/aroma': 2.5}

Dosyayı aşağıdaki kodla yükledim:

import json
with open('./test.json', 'r') as json_file:
    data = json.load(json_file)

Ama bir hata tutarsa: JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1).

Başka seçenek:

data = json.loads('./test.json')
print(data)

Çıktı:

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Bunu nasıl doğru yapabilirim? Şimdiden çok teşekkürler.

Yanıtlar

2 HarshaBiyani Nov 02 2020 at 06:07

JSON'da 2 sorun var.

  1. Dizi parantezleri eksik []
  2. Değiştir 'için"

Doğru JSON:

[{
    "review/appearance": 2.5,
    "beer/style": "Hefeweizen",
    "review/palate": 1.5,
    "review/taste": 1.5,
    "beer/name": "Sausa Weizen",
    "review/timeUnix": 1234817823,
    "beer/ABV": 5.0,
    "beer/beerId": "47986",
    "beer/brewerId": "10325",
    "review/timeStruct": {
        "isdst": 0,
        "mday": 16,
        "hour": 20,
        "min": 57,
        "sec": 3,
        "mon": 2,
        "year": 2009,
        "yday": 47,
        "wday": 0
    },
    "review/overall": 1.5,
    "review/text": "A lot of foam. But a lot.\tIn the smell some banana, and then lactic and tart. Not a good start.\tQuite dark orange in color, with a lively carbonation (now visible, under the foam).\tAgain tending to lactic sourness.\tSame for the taste. With some yeast and banana.",
    "user/profileName": "stcules",
    "review/aroma": 2.0
}, {
    "review/appearance": 3.0,
    "beer/style": "English Strong Ale",
    "review/palate": 3.0,
    "review/taste": 3.0,
    "beer/name": "Red Moon",
    "review/timeUnix": 1235915097,
    "beer/ABV": 6.2,
    "beer/beerId": "48213",
    "beer/brewerId": "10325",
    "review/timeStruct": {
        "isdst": 0,
        "mday": 1,
        "hour": 13,
        "min": 44,
        "sec": 57,
        "mon": 3,
        "year": 2009,
        "yday": 60,
        "wday": 6
    },
    "review/overall": 3.0,
    "review/text": "Dark red color, light beige foam, average.\tIn the smell malt and caramel, not really light.\tAgain malt and caramel in the taste, not bad in the end.\tMaybe a note of honey in teh back, and a light fruitiness.\tAverage body.\tIn the aftertaste a light bitterness, with the malt and red fruit.\tNothing exceptional, but not bad, drinkable beer.",
    "user/profileName": "stcules",
    "review/aroma": 2.5
}, {
    "review/appearance": 3.0,
    "beer/style": "Foreign / Export Stout",
    "review/palate": 3.0,
    "review/taste": 3.0,
    "beer/name": "Black Horse Black Beer",
    "review/timeUnix": 1235916604,
    "beer/ABV": 6.5,
    "beer/beerId": "48215",
    "beer/brewerId": "10325",
    "review/timeStruct": {
        "isdst": 0,
        "mday": 1,
        "hour": 14,
        "min": 10,
        "sec": 4,
        "mon": 3,
        "year": 2009,
        "yday": 60,
        "wday": 6
    },
    "review/overall": 3.0,
    "review/text": "Almost totally black. Beige foam, quite compact, not bad.\tLight smell, just a bit of roast, and some hop. A bit too light.\tThe taste is light oo, and drinkable, with some malt, roast, hints of coffee.\tNothing exceptional, but after all drinkable and pleasant.\tLight to average body.\tIn the aftertaste some dust, somr roast, hint of caramel, and a bit of bitterness.\tNo defect, drinkable, not bad.",
    "user/profileName": "stcules",
    "review/aroma": 2.5
}] 
1 buran Nov 02 2020 at 05:59

bu json dosyası değil. Görünüşe göre ndjson üçüncü taraf paketi ndjson'a bakıyor

Ayrıca, tek tırnak değil, çift tırnak kullanmalıdır.

Bu, oluşturduğunuz veya değiştirebileceğiniz bir dosyaysa, bu 3 JSON nesnesini JSON dizisine koyabilirsiniz ve ardından t geçerli JSON olur.

1 JackTaylor Nov 02 2020 at 06:07

Sorun, dosyanızın geçerli JSON olmamasıdır. Dizelerinizin etrafında tek tırnak işareti yerine çift tırnak işaretine ihtiyacınız var ve üç nesnenizi bir dizinin içine almanız gerekiyor.

Bunun yerine şunu deneyin:

[
    {"review/appearance": 2.5, "beer/style": "Hefeweizen", "review/palate": 1.5, "review/taste": 1.5, "beer/name": "Sausa Weizen", "review/timeUnix": 1234817823, "beer/ABV": 5.0, "beer/beerId": "47986", "beer/brewerId": "10325", "review/timeStruct": {"isdst": 0, "mday": 16, "hour": 20, "min": 57, "sec": 3, "mon": 2, "year": 2009, "yday": 47, "wday": 0}, "review/overall": 1.5, "review/text": "A lot of foam. But a lot.\tIn the smell some banana, and then lactic and tart. Not a good start.\tQuite dark orange in color, with a lively carbonation (now visible, under the foam).\tAgain tending to lactic sourness.\tSame for the taste. With some yeast and banana.", "user/profileName": "stcules", "review/aroma": 2.0},
    {"review/appearance": 3.0, "beer/style": "English Strong Ale", "review/palate": 3.0, "review/taste": 3.0, "beer/name": "Red Moon", "review/timeUnix": 1235915097, "beer/ABV": 6.2, "beer/beerId": "48213", "beer/brewerId": "10325", "review/timeStruct": {"isdst": 0, "mday": 1, "hour": 13, "min": 44, "sec": 57, "mon": 3, "year": 2009, "yday": 60, "wday": 6}, "review/overall": 3.0, "review/text": "Dark red color, light beige foam, average.\tIn the smell malt and caramel, not really light.\tAgain malt and caramel in the taste, not bad in the end.\tMaybe a note of honey in teh back, and a light fruitiness.\tAverage body.\tIn the aftertaste a light bitterness, with the malt and red fruit.\tNothing exceptional, but not bad, drinkable beer.", "user/profileName": "stcules", "review/aroma": 2.5},
    {"review/appearance": 3.0, "beer/style": "Foreign / Export Stout", "review/palate": 3.0, "review/taste": 3.0, "beer/name": "Black Horse Black Beer", "review/timeUnix": 1235916604, "beer/ABV": 6.5, "beer/beerId": "48215", "beer/brewerId": "10325", "review/timeStruct": {"isdst": 0, "mday": 1, "hour": 14, "min": 10, "sec": 4, "mon": 3, "year": 2009, "yday": 60, "wday": 6}, "review/overall": 3.0, "review/text": "Almost totally black. Beige foam, quite compact, not bad.\tLight smell, just a bit of roast, and some hop. A bit too light.\tThe taste is light oo, and drinkable, with some malt, roast, hints of coffee.\tNothing exceptional, but after all drinkable and pleasant.\tLight to average body.\tIn the aftertaste some dust, somr roast, hint of caramel, and a bit of bitterness.\tNo defect, drinkable, not bad.", "user/profileName": "stcules", "review/aroma": 2.5}
]

Bu arada, bir dosya yolu veya dosya nesnesi değil, bir JSON dizesi beklediği obj = json.loads('./test.json')gibi çalışmayacaktır json.loads. ( loads"yükleme dizesi" nin kısaltmasıdır.) Onun json.loadyerine istiyorsunuz .

TheSavageTeddy Nov 02 2020 at 06:00

Dosya json değil. Bu daha önce burada sorulmuştu

JSON Tek 'tırnak kullanmaz, bunun yerine çift tırnak kullanırlar"