如何解析';JSON字符串';Python中的文件?

如何解析';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文件”加载到

我正在做一件与类似的事情。我下载了一个类似于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文件