处理我的JSON文件时Python有什么问题?

处理我的JSON文件时Python有什么问题?,python,json,Python,Json,我尝试使用python从json文件中删除第一个键和值。在运行程序时,我遇到了一个错误,如下所述: import json with open('testing') as json_data: data = json.load(json_data) for element in data: del element['url'] 错误: Traceback (most recent call last): File "p.py", line 3, in <

我尝试使用python从json文件中删除第一个键和值。在运行程序时,我遇到了一个错误,如下所述:

import json
with open('testing') as json_data:
    data = json.load(json_data)
    for element in data:
        del element['url']
错误:

Traceback (most recent call last):
  File "p.py", line 3, in <module>
    data = json.load(json_data)
  File "/usr/lib/python3.5/json/__init__.py", line 268, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.5/json/decoder.py", line 342, in decode
    raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 180)

我不知道为什么会出现这个问题?

json\u数据是文件的实例,而不是内容。因此,首先对实例应用read()以获取数据。第二,如果您正在读取JSON文件,请写入完整的文件名。您的文件应该是testing.json。第三,指定文件打开模式。您可以使用此代码

导入json
使用open('testing.json','r')作为json_数据:
data=json.load(json_data.read())
对于数据中的元素:

del元素['url']
您必须逐行读取文件,因为它是一行行的
json
数据,而不是有效的
json
结构

这是我的逐行建议

import json
data = []
with open('testing') as f:
    for json_data in f:
       element = json.loads(json_data)  # load from current line as string
       del element['url']
       data.append(element)
在这种情况下,有效的json是:

[{"url":"example.com","original_url":"http://example.com","text":"blah...blah"...},
{"url":"example1.com","original_url":"http://example1.com","text":"blah...blah"...}]

根据我的评论,输入文件不是有效的JSON

这个答案告诉您如何成功地读取这样一个文件,该文件由有效JSON实体的串联组成,而不是一个此类实体的JSON列表


如果且仅当您可以依赖文件的行结构时,另一种选择是逐行读取并分别解码每行。

我们需要查看
测试
文件,或者如果文件太大,至少是开始和结束。@Jean-Françoisfare是的,让我编辑输入请按原样发布文件中的第1-3行。从错误消息中,我怀疑这就是发现错误的地方。:)Python
json
模块对json的解释非常严格。通常的问题是,无论从何处获取所谓的JSON,都不会生成严格有效的JSON。常见的错误是
{…}{…}
{…},{…}
而不是有效的dict列表
[{…},{…}]
.Snap!我猜对了,你就在我发表评论的时候发布了确认信息!
[{"url":"example.com","original_url":"http://example.com","text":"blah...blah"...},
{"url":"example1.com","original_url":"http://example1.com","text":"blah...blah"...}]