加载json文件时的ValueError(python)

时间:2014-11-24 03:33:38

标签: python json

我试图在python中加载我的twit数据,但是我遇到了一些错误。下面是我加载数据的代码。我正在附上错误消息。我猜我的TwitData1.json数据有一些问题,所以需要处理...我不知道如何处理这个问题。提前谢谢。

import json, pprint

with open("TwitData1.json") as json_file:

  json_data = json.load(json_file)

  pprint(json_data)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-26-ba1a50c671e1> in <module>()
      2 
      3 with open("TwitData1.json") as json_file:
----> 4     json_data = json.load(json_file)
      5     json_data.close()
      6     pprint(json_data)

C:\Users\Jay\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.4.1.1975.win-x86_64\lib\json\__init__.pyc in load(fp, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    288         parse_float=parse_float, parse_int=parse_int,
    289         parse_constant=parse_constant, object_pairs_hook=object_pairs_hook,
--> 290         **kw)
    291 
    292 

C:\Users\Jay\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.4.1.1975.win-x86_64\lib\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

C:\Users\Jay\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.4.1.1975.win-x86_64\lib\json\decoder.pyc in decode(self, s, _w)
    366         end = _w(s, end).end()
    367         if end != len(s):
--> 368             raise ValueError(errmsg("Extra data", s, end, len(s)))
    369         return obj
    370 

ValueError: Extra data: line 2 column 1 - line 21 column 1 (char 2057 - 70650)

1 个答案:

答案 0 :(得分:0)

首先我将使用json验证器验证您的json文件是否正确(只是google json验证器)。我的赌注是它不是,错误消息明确说明第2行第1行 - 第21行第1列中存在错误。当您在单个json文件中有多个json对象时,通常会发生额外的数据错误。

json.loads('{"object" : "A"}{"object" : "B"}')
valueError: Extra data: line 1 column 16 - line 1 column 32 (char 16 - 32)

要加载多个json对象,请将2个json对象放入单个列表

json.loads('[{"object" : "A"},{"object" : "B"}]')
[{u'object': u'A'}, {u'object': u'B'}]

我希望你能找到这个有用的

干杯!