Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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.loads()读入json对象数组_Python_Json - Fatal编程技术网

Python:使用json.loads()读入json对象数组

Python:使用json.loads()读入json对象数组,python,json,Python,Json,我有一个data.txt文件,其中包含json对象列表,如下所示: [{"id":"1111","color":["blue"],"length":"120"},{"id":"1112","color":["red"],"length":"130"},{"id":"1112","color":["yellow"],"length":"136"}] 我尝试使用python json.loads阅读它: data = json.loads("data.txt") 但后来我发现了以下错误。我错过什

我有一个data.txt文件,其中包含json对象列表,如下所示:

[{"id":"1111","color":["blue"],"length":"120"},{"id":"1112","color":["red"],"length":"130"},{"id":"1112","color":["yellow"],"length":"136"}]
我尝试使用python json.loads阅读它:

data = json.loads("data.txt")
但后来我发现了以下错误。我错过什么了吗?非常感谢

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.pyc in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    336             parse_int is None and parse_float is None and
    337             parse_constant is None and object_pairs_hook is None and not kw):
--> 338         return _default_decoder.decode(s)
    339     if cls is None:
    340         cls = JSONDecoder

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.pyc in decode(self, s, _w)
    363 
    364         """
--> 365         obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    366         end = _w(s, end).end()
    367         if end != len(s):

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.pyc in raw_decode(self, s, idx)
    381             obj, end = self.scan_once(s, idx)
    382         except StopIteration:
--> 383             raise ValueError("No JSON object could be decoded")
    384         return obj, end

ValueError: No JSON object could be decoded

您正在尝试读取字符串
“data.txt”
。您需要的是打开并读取文件

尝试:


json.load
将字符串解释为json数据,而
json.load
获取一个文件对象并读取它,然后将其解释为json。

您需要打开该文件进行读取。要获得所需的行为,请执行以下操作:

with open('data.txt', 'r') as f:
    data = json.loads(f.read())
这将为您提供所需的json结构。使用with可以避免在完成时显式关闭文件。

这是因为
“data.txt”
不是有效的JSON字符串
加载
接受JSON数据,而不是文件名。
data = json.load(open("data.txt", 'r'))
with open('data.txt', 'r') as f:
    data = json.loads(f.read())