Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中逐行加载json时出错?_Python_Json - Fatal编程技术网

在python中逐行加载json时出错?

在python中逐行加载json时出错?,python,json,Python,Json,这是我的json文件格式 [{ "name": "", "official_name_en": "Channel Islands", "official_name_fr": "Îles Anglo-Normandes", }, and so on...... 在加载文件中的上述json时,我得到了这个错误 json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: 这是我的python代码

这是我的json文件格式

[{
"name": "",
"official_name_en": "Channel Islands",
"official_name_fr": "Îles Anglo-Normandes",
}, and so on......
在加载文件中的上述json时,我得到了这个错误

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes:
这是我的python代码

import json

data = []
with open('file') as f:
    for line in f:
        data.append(json.loads(line))

JSON中不允许使用,}(根据给出的数据,我想这是问题所在)。

,}
在JSON中不允许使用(根据给出的数据,我想这是问题所在)。

问题在于逐行读取和解码文件。文件中的任何一行(例如,
“[{”
)都不是有效的JSON表达式。

问题在于逐行读取和解码文件。文件中的任何一行(例如,
“[{”
)都不是有效的JSON表达式。

您的各行都不是有效的JSON。例如,第一行的[{'本身不是有效的JSON。如果整个文件实际上是有效的JSON,并且需要单独的行,请首先加载整个JSON,然后浏览python字典

import json

data = json.loads(open('file').read()) # this should be a list
for list_item in data:
    print(list_item['name'])

您的各行不是有效的JSON。例如,第一行“[{”本身不是有效的JSON。如果您的整个文件实际上是有效的JSON,并且需要各行,请首先加载整个JSON,然后浏览python字典

import json

data = json.loads(open('file').read()) # this should be a list
for list_item in data:
    print(list_item['name'])

您似乎在一次一行处理整个文件。为什么不简单地使用一次获取整个内容,然后将其提供给json

with open('file') as f:
    contents = f.read()
    data = json.loads(contents)
更好的办法是,为什么不使用
json.load()
直接传递可读文件并让它处理slurping呢

with open('file') as f:
    data = json.load(f)

您似乎在一次一行处理整个文件。为什么不简单地使用一次获取整个内容,然后将其提供给json

with open('file') as f:
    contents = f.read()
    data = json.loads(contents)
更好的办法是,为什么不使用
json.load()
直接传递可读文件并让它处理slurping呢

with open('file') as f:
    data = json.load(f)

,在json中是允许的,上面的示例会切断后续的json内容。它不是,}它是},我的意思是
}
,请参阅处的格式规范。在json中是允许的,上面的示例会切断后续的json内容。它不是,}它是},我的意思是
}
,请参阅中的格式规范。可能列表中的某个属性实际上有一个单引号而不是双引号?可能列表中的某个属性实际上有一个单引号而不是双引号?加载json文件的正确方法是什么?只需使用
json.load()
从文件加载。将json文件加载到dict的正确方法是什么?只需从文件中使用
json.load()
。你是说json.load不是json.load吗?否。
load
从字符串读取,而
load
从可读文件(如文件句柄)读取或者,是的。我只是在content=version.Edited中看到了错误。你是说json.loads不是json.load吗?否。
loads
从字符串读取,而
loads
从可读文件(如文件句柄)读取。或者,是的。我只是在content=version.Edited中看到了错误。我想将json转换为字典我想将json转换为字典