本文介绍了json.decoder.JSONDecodeError:额外数据:第2行第1列(字符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}

推荐答案

您的json文件中有两条记录,而json.loads()不能解码多个记录.您需要按记录进行记录.

You have two records in your json file, and json.loads() is not able to decode more than one. You need to do it record by record.

请参见 Python json.loads显示ValueError:额外数据

或者您需要重新格式化json以包含一个数组:

OR you need to reformat your json to contain an array:

{
    "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}
    ]
}

将再次被接受.但是不能有几个顶级对象.

would be acceptable again. But there cannot be several top level objects.

这篇关于json.decoder.JSONDecodeError:额外数据:第2行第1列(字符190)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-06 03:27