我有一个文件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
答案 0 :(得分:11)
您正在尝试阅读字符串"data.txt"
。你想要的是打开并阅读文件。
import json
with open('data.txt', 'r') as data_file:
json_data = data_file.read()
data = json.loads(json_data)
答案 1 :(得分:8)
尝试:
data = json.load(open("data.txt", 'r'))
json.loads
将字符串解释为JSON数据,而json.load
获取文件对象并读取它,然后将其解释为JSON。
答案 2 :(得分:1)
您需要打开文件进行阅读并阅读。获得您想要的行为:
with open('data.txt', 'r') as f:
data = json.loads(f.read())
那应该给你想要的json结构。使用with可以让您在完成后不必显式关闭文件。