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

2024-10-04 05:27:36 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

错误:

^{pr2}$

文件输入如下:

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

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


Tags: 文件text程序comjsonhttpurldata
3条回答

您必须逐行读取文件,因为它是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应该是:

^{pr2}$

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

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

和13;
和13;

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

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

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

相关问题 更多 >