如何解析';JSON字符串';Python中的文件?
我正在做一件与类似的事情。我下载了一个类似于JSON文件的文件。但当我在记事本中打开它时,我发现它是一个很长的字典列表。该文件基本上如下所示:如何解析';JSON字符串';Python中的文件?,python,json,file,import,io,Python,Json,File,Import,Io,我正在做一件与类似的事情。我下载了一个类似于JSON文件的文件。但当我在记事本中打开它时,我发现它是一个很长的字典列表。该文件基本上如下所示: [ {'time':1, 'value':100}, {'time':2, 'value':105}, {'time':3, 'value':120} ] import json with open('data.json') as data_file: data = json.loads(data_file) 我尝试将此“JSON文件”加载到
[
{'time':1, 'value':100},
{'time':2, 'value':105},
{'time':3, 'value':120}
]
import json
with open('data.json') as data_file:
data = json.loads(data_file)
我尝试将此“JSON文件”加载到Python中,如下所示:
[
{'time':1, 'value':100},
{'time':2, 'value':105},
{'time':3, 'value':120}
]
import json
with open('data.json') as data_file:
data = json.loads(data_file)
但有一个错误:
TypeError: expected string or buffer
如何将此文件正确加载到Python中?我想迭代每一行来提取所有的“值”。谢谢 使用
json.load
:
with open('data.json') as data_file:
data = json.load(data_file)
json.load
和json.load
之间的主要区别在于json.load
接受一个文件(或类似文件的对象)来读取和加载json,而json.load
从字符串加载json。使用json.load
:
with open('data.json') as data_file:
data = json.load(data_file)
json.load
和json.loads
之间的主要区别在于json.load
接受一个文件(或类似文件的对象)来读取和加载json,而json.loads
从字符串加载json。要使用json.loads
您需要读取文件…即data=json.loads(data\u file.read())
通过这样做,我得到了与使用json.load()时相同的错误,正如下面@Rushy所建议的那样。此文件共有85473行,第一行为[
,最后一行为]
。前后无引号。我认为它本质上是一个列表对象。要使用json.loads
您需要读取文件…即data=json.loads(data\u file.read())
,通过这样做,我得到了与使用json.loads()
时相同的错误,正如下面@Rushy所建议的那样。此文件共有85473行,第一行为[
,最后一行为]
。前后无引号。我认为它本质上是一个列表对象。谢谢@Rushy。我使用了json.load()
,但仍然得到一个错误:ValueError:额外数据:第371行第2列-第85473行第2列(char 196700-43922174)
。第85473行是最后一行。此文件的第一行是[
,最后一行是]
。在前后没有引号。@user3768495您的JSON文件很可能不是有效的JSON。在]
之后有什么吗?没有,没有。这个文件就像我在上面的问题中展示的例子,只是有更多的行。我刚刚用rjson包在R中成功地读取了这个文件。只有两行:data\u文件谢谢@Rushy。我使用了json.load()
,但仍然得到一个错误:ValueError:额外数据:第371行第2列-第85473行第2列(char 196700-43922174)
。第85473行是最后一行。此文件的第一行是[
,最后一行是]
。在前后没有引号。@user3768495您的JSON文件很可能不是有效的JSON。在]
之后有什么吗?没有,没有。这个文件就像我在上面的问题中展示的例子,只是有更多的行。我刚刚用rjson包在R中成功地读取了这个文件。只有两行:data\u文件