web-dev-qa-db-ja.com

json.decoder.JSONDecodeError:追加データ:行2列1(char 190)

私は次のコードを実行しています-

import json

addrsfile = 
open("C:\\Users\file.json", 
"r")
addrJson = json.loads(addrsfile.read())
addrsfile.close()
if addrJson:
    print("yes")

しかし、次のエラーを教えて

Traceback (most recent call last):
  File "C:/Users/Mayur/Documents/WebPython/Python_WebServices/test.py", line 9, in <module>
    addrJson = json.loads(addrsfile.read())
  File "C:\Users\Mayur\Anaconda3\lib\json\__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "C:\Users\Mayur\Anaconda3\lib\json\decoder.py", line 342, in decode
    raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 190)

誰でも私を助けてくれますか?

JSONファイルは

{"name": "XYZ", "address": "54.7168,94.0215", "country_of_residence": "PQR", "countries": "LMN;PQRST", "date": "28-AUG-2008", "type": null}
{"name": "OLMS", "address": null, "country_of_residence": null, "countries": "Not identified;No", "date": "23-FEB-2017", "type": null}
8
SMS

Jsonファイルに2つのレコードがあり、json.loads()は複数のレコードをデコードできません。レコードごとに行う必要があります。

Python json.loadsはValueError:Extra data を参照してください

または、jsonを再フォーマットして配列を含める必要があります。

{
    "foo" : [
       {"name": "XYZ", "address": "54.7168,94.0215", "country_of_residence": "PQR", "countries": "LMN;PQRST", "date": "28-AUG-2008", "type": null},
       {"name": "OLMS", "address": null, "country_of_residence": null, "countries": "Not identified;No", "date": "23-FEB-2017", "type": null}
    ]
}

再び受け入れられるでしょう。ただし、複数のトップレベルオブジェクトは存在できません。

13
Hannu

私はREST API呼び出しからJSONを解析していましたが、このエラーが発生しました。APIが(例えば、パラメーターの順序などについて)より混乱し、不正な結果を返していました。あなたはあなたが期待するものを得ています:)

0
Richard