[英]importing multiline JSON file in python
我正在嘗試在python中導入具有許多對象的JSON文件,如下所示:
{"ID": 1989, "Attrib1": "74574d4c6", "Attrib2": null, "Attrib3": "41324" }
{"ID": 1990, "Attrib1": "1652857c6", "Attrib2": asd123, "Attrib3": "424" }
該文件的每個對象都有換行符,因此, json.load(file)
在第一個換行符處失敗。
我嘗試使用以下方法遍歷它們:
with open(myFileLocation,'r') as myfile:
for line in myfile:
Data = json.loads(row)
return Data
但是我無法將每行添加到字典對象,因為它沒有附加(或其他任何知道的方法)。
如何將JSON文件中的所有對象作為字典返回?
json.loads(和json.load)不會解碼多個json對象。
>>>json.loads('{}')
{}
>>>json.loads('{}{}')
JSONDecodeError Traceback (most
recent call last)
<ipython-input-7-0285b42a3a05> in <module>()
----> 1 json.loads('{}{}')
~\AppData\Local\Continuum\anaconda3\lib\json\__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
352 parse_int is None and parse_float is None and
353 parse_constant is None and object_pairs_hook
is None and not kw):
--> 354 return _default_decoder.decode(s)
355 if cls is None:
356 cls = JSONDecoder
~\AppData\Local\Continuum\anaconda3\lib\json\decoder.py in decode(self, s, _w)
340 end = _w(s, end).end()
341 if end != len(s):
--> 342 raise JSONDecodeError("Extra data", s, end)
343 return obj
344
JSONDecodeError: Extra data: line 1 column 3 (char 2)
要轉儲多個詞典,可以通過轉儲列表將它們包裝在列表中。
>>> dict1 = {}
>>> dict2 = {}
>>> json.dumps([dict1, dict2])
'[{}, {}]'
>>> json.loads(json.dumps([dict1, dict2]))
[{}, {}]
也可以按如下方式使用附加
list = []
for line in open('data.json'), 'r'):
list.append(json.loads(line)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.