我的文件包含如下数量的 JSON 记录:
输入文件:
{"timestamp":1487271527,"user":"Dave","action":"browse"}
{"timestamp":1487271528,"user":"Dave","action":"navigate"}
{"timestamp":1487271529,"user":"Dave","action":"browse"}
{"timestamp":1487271530,"user":"Dave","action":"view"}
{"timestamp":1487271531,"user":"Dave","action":"browse"}
{"timestamp":1487271532,"user":"Dave","action":"browse"}
{"timestamp":1487271533,"user":"Dave","action":"browse"}
{"timestamp":1487271534,"user":"Dave","action":"navigate"}
我想将此数据加载到字典中,类似于 json.load 函数的作用
我怎样才能做到这一点?
使用 json.load 我收到以下错误:
Traceback (most recent call last):
File "C:/Users/lenovo/AppData/Local/Programs/Python/Python36-32/Granular.py", line 5, in <module>
input_data = json.load(open(r"C:\Users\lenovo\Desktop\nlp\input.txt",'r'))
File "C:\Users\lenovo\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 299, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "C:\Users\lenovo\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "C:\Users\lenovo\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 342, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 57)
最佳答案
示例文件中的每一行都是一个单独的 JSON 结构。您可能希望在文件名的扩展名中明确这一点,例如您可以使用 lsjson
代表行分隔的 JSON。
在这种情况下,您必须将每个值作为字符串读取,并将其解码为 python 字典:
import json
with open('example.lsjson') as fh:
data = [json.loads(line) for line in fh.readlines()]
你最终会得到一个字典列表
from pprint import pprint
pprint(data)
[{u'action': u'browse', u'timestamp': 1487271527, u'user': u'Dave'},
{u'action': u'navigate', u'timestamp': 1487271528, u'user': u'Dave'},
{u'action': u'browse', u'timestamp': 1487271529, u'user': u'Dave'},
{u'action': u'view', u'timestamp': 1487271530, u'user': u'Dave'},
{u'action': u'browse', u'timestamp': 1487271531, u'user': u'Dave'},
{u'action': u'browse', u'timestamp': 1487271532, u'user': u'Dave'},
{u'action': u'browse', u'timestamp': 1487271533, u'user': u'Dave'},
{u'action': u'navigate', u'timestamp': 1487271534, u'user': u'Dave'}]
关于python - Python 中解析 JSON 的文件格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48575709/