读取和解析json文件

时间:2017-06-28 12:35:50

标签: python json

我正在使用以下python脚本来读取和解析json文件

import json

with open('testdata.json', 'r') as raw_data:   

  content = json.load(raw_data)  
  print(content)

包含以下数据:

    {"grp":"1"; "total":"10"}  
{"event":"run", "timestamp":"2010-01-30 10:00:40", "id": "200", "distance": "5"}  
{"event":"walk", "timestamp":"2010-01-31 18:46:00", "id": "200", "disrance": "2"}  

我收到了错误:

    Traceback (most recent call last):  
  File "readdata.py", line 4, in <module>  
    content = json.load(raw_data)  
  File "/usr/lib/python2.7/json/__init__.py", line 290, in load  **kw)  
  File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)  
  File "/usr/lib/python2.7/json/decoder.py", line 369, in decode  
raise ValueError(errmsg("Extra data", s, end, len(s)))  
ValueError: Extra data: line 2 column 1 - line 3 column 1 (char 93 - 187)   

如果我有一行数据它可以工作...... 2行或更多行数据我得到错误

无法看到导致此问题的任何内容

1 个答案:

答案 0 :(得分:2)

SO语法荧光笔解决了您的问题。

"distance': "5"}
         ^

将此更改为双引号

但还有很多其他问题。这是您的json文件的有效版本。

[
  {"grp":1, "total":10},
  {"event":"run", "timestamp":"2010-01-30 10:00:40", "id": "200", "distance": "5"},  
  {"event":"walk", "timestamp":"2010-01-31 18:46:00", "id": "200", "disrance": "2"}
]

注意每个键的",对之间的key:value和列表元素之间的,

您可以使用jsonlint.com

等工具验证您的JSON