我能';t在python上加载json文件(JSONDecodeError:额外数据)

我能';t在python上加载json文件(JSONDecodeError:额外数据),python,json,text-mining,Python,Json,Text Mining,我试图使用JSON.load()加载一些JSON数据,但我一直收到一条错误消息,我不知道如何修复它 下面是json文件的一部分示例,其中有已删除的推文(以{“delete”:{)和已创建的推文(以{“created_at”开头): 我的最终目标是从这个文件中提取tweet的文本,但为此,我需要将其作为python上的json文件加载,所以这就是我迄今为止所尝试的: with open('tweets.json', 'r') as f: data = json.load(f) 这是我收

我试图使用JSON.load()加载一些JSON数据,但我一直收到一条错误消息,我不知道如何修复它

下面是json文件的一部分示例,其中有已删除的推文(以{“delete”:{)和已创建的推文(以{“created_at”开头):

我的最终目标是从这个文件中提取tweet的文本,但为此,我需要将其作为python上的json文件加载,所以这就是我迄今为止所尝试的:

with open('tweets.json', 'r') as f:
    data = json.load(f) 
这是我收到的错误信息:

---------------------------------------------------------------------------
JSONDecodeError                           Traceback (most recent call last)
<ipython-input-42-212742fc8eeb> in <module>
      1 with open('tweets.json', 'r') as f:
----> 2     data = json.load(f)

/opt/anaconda3/lib/python3.7/json/__init__.py in load(fp, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    294         cls=cls, object_hook=object_hook,
    295         parse_float=parse_float, parse_int=parse_int,
--> 296         parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
    297 
    298 

/opt/anaconda3/lib/python3.7/json/__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    346             parse_int is None and parse_float is None and
    347             parse_constant is None and object_pairs_hook is None and not kw):
--> 348         return _default_decoder.decode(s)
    349     if cls is None:
    350         cls = JSONDecoder

/opt/anaconda3/lib/python3.7/json/decoder.py in decode(self, s, _w)
    338         end = _w(s, end).end()
    339         if end != len(s):
--> 340             raise JSONDecodeError("Extra data", s, end)
    341         return obj
    342 

JSONDecodeError: Extra data: line 2 column 1 (char 153)
---------------------------------------------------------------------------
JSONDecodeError回溯(最近一次调用)
在里面
1以open('tweets.json','r')作为f:
---->2 data=json.load(f)
/opt/anaconda3/lib/python3.7/json/\uuuuu init\uuuuuu.py加载(fp、cls、object\u hook、parse\u float、parse\u int、parse\u常量、object\u pairs\u hook、**kw)
294 cls=cls,object\u hook=object\u hook,
295 parse_float=parse_float,parse_int=parse_int,
-->296 parse_常量=parse_常量,object_pairs_hook=object_pairs_hook,**千瓦)
297
298
/加载中的opt/anaconda3/lib/python3.7/json/\uuuuu init\uuuuuuuu.py(s、编码、cls、对象钩子、解析浮点数、解析整型、解析常数、对象对钩子,**kw)
346 parse_int为无,parse_float为无且
347 parse_常量为None且对象_pairs_hook为None且非kw):
-->348返回默认解码器。解码
349如果cls为无:
350 cls=JSONDecoder
/解码中的opt/anaconda3/lib/python3.7/json/decoder.py(self,s,_w)
338 end=_w(s,end).end()
339如果结束!=长度:
-->340 raise JSONDecodeError(“额外数据”,s,结束)
341返回obj
342
JSONDecodeError:额外数据:第2行第1列(字符153)

似乎有额外的数据,但我不太熟悉处理json文件,我不知道到底是什么导致了错误以及如何修复它,你能给我指出正确的方向吗?到底是什么导致了错误?我如何修复它?

尝试用类似的东西验证json。你会注意到文本不是有效的json,在第一个
delete
元素之后,JSON也有多个问题。

尝试用类似的东西验证JSON。您会注意到文本不是有效的JSON,在第一个
delete
元素之后,JSON也有多个问题。

在提供的JSON中有多个JSON反对

{“delete”:{“status”:{“id”:509743302972043264,“id_str”:“509743302972043264”,“user_id”:1366812392,“user_id_str”:“1366812392”},“timestamp_ms”:“1410368494532”}
{“删除”:{“状态”:{“id”:64472572007428096,“id街”:“64472572007428096”,“用户id”:31473446,“用户id街”:“31473446”},“时间戳”:“1410368494565”}
{“创建时间”:“Wed Sep 10 17:01:34+0000 2014”,“id”:509748529070616576,“id街”:“509748529070616576”,“文本”:“Metin\u015eent\u00fcrk”
Twitterda@metinsenturk MUHTE\u015eEM\u00dc\u00c7L\u00dc;SEN,BEN,M\u00dcZ\u0130K,“来源:“\u003ca href=\”http:\/\/www.twitter.com\”
rel=\“nofollow\”\u003eTwitter for Windows\u003c\/a\u003e,“truncated”:false,“in-reply\u to\u status\u id”:null,“in-reply\u to\u status\u id\u str”:
null,“in-reply_to_user_id”:null,“in-reply_to_user_id_str”:null,“in-reply_to_screen_name”:null,“user”:{“id”:2748960,“id_str”:“2748960”,“name”:“Enise Erkuzu\n”,
“屏幕名称”:“eniseerkuzu38”,“位置”:“Denizli\n”,“url”:null,“描述”:“Tipe bakarak a\u015f\u0131k olanlar,am\u0131n\u0131za koyay\u0131m。”,
“受保护”:false,“已验证”:false,“关注者数量”:36,“好友数量”:32,“列出的数量”:0,“收藏夹数量”:75,“状态数量”:595,“创建时间”:
“2014年8月21日星期四10:17:18+0000”,“utc_偏移量”:null,“时区”:null,“地理位置启用”:false,“lang”:“en”,“贡献者_启用”:false,“is_translator”:false,
“配置文件背景颜色”:“c0dect”,“配置文件背景图像url”:“http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png”,“配置文件背景图像url\https”:
“https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png”,“配置文件背景图片”:false,“配置文件链接颜色”:“0084B4”,“配置文件侧栏边框颜色”:“C0”,
“配置文件侧栏填充颜色”:“DDEEF6”,“配置文件文本颜色”:“333333”,“配置文件使用背景图像”:true,“配置文件图像url”:
“http:\/\/pbs.twimg.com\/profile\u images\/5023990806190592\/tRqoEQyM\u normal.jpeg”,“profile\u images\u url\u https:“https:\/\/pbs.twimg.com\/profile\u images\/5023990806190592\/tRqoEQyM\u normal.jpeg”,
“default_profile”:true,“default_profile_image”:false,“following”:null,“following_request_sent”:null,“notifications”:null},“geo”:null,“坐标”:null,“place”:null,“contributors”:null,
“retweet_count”:0,“favorite_count”:0,“entities”:{“hashtags”:[],“trends”:[],“URL”:[],“user_提及”:[{“screen_name”:“metinsenturk”,“name”:“Metin\u015 eent\u00fcrk”,“id”:523497734,“id_str”:“523497734”,“Indexs”:[24,37]},
“符号”:[]},“偏爱的”:假,“转发的”:假,“可能敏感的”:假,“过滤级别”:“中等”,“语言”:“tr”,“时间戳”:“1410368494662”}
因此,您必须将所有这些文件拆分为单独的文件或使文件如下所示

{
“全部”:[
{“delete”:{“status”:{“id”:509743302972043264,“id_str”:“509743302972043264”,“user_id”:1366812392,“user_id_str”:“1366812392”},“timestamp_ms”:“1410368494532”}
{“删除”:{“状态”:{“id”:64472572007428096,“id街”:“64472572007428096”,“用户id”:31473446,“用户id街”:“31473446”},“时间戳”:“1410368494565”}
{“创建时间”:“Wed Sep 10 17:01:34+0000 2014”,“id”:509748529070616576,“id街”:“509748529070616576”,“文本”:“Metin\u015eent\u00fcrk”
Twitterda@metinsenturk MUHTE\u015eEM\u00dc\u00c7L\u00dc;SEN,BEN,M\u00dcZ\u0130K,“来源:“\u003ca href=\”http:\/\/www.twitter.com\”
rel=\“nofollow\”\u003eTwitter for Windows\u003c\/a\u003e,“truncated”:false,“in-reply\u to\u status\u id”:null,“in-reply\u to\u status\u id\u str”:
null,“在用户id中回复”:null,“在用户id中”
---------------------------------------------------------------------------
JSONDecodeError                           Traceback (most recent call last)
<ipython-input-42-212742fc8eeb> in <module>
      1 with open('tweets.json', 'r') as f:
----> 2     data = json.load(f)

/opt/anaconda3/lib/python3.7/json/__init__.py in load(fp, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    294         cls=cls, object_hook=object_hook,
    295         parse_float=parse_float, parse_int=parse_int,
--> 296         parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
    297 
    298 

/opt/anaconda3/lib/python3.7/json/__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    346             parse_int is None and parse_float is None and
    347             parse_constant is None and object_pairs_hook is None and not kw):
--> 348         return _default_decoder.decode(s)
    349     if cls is None:
    350         cls = JSONDecoder

/opt/anaconda3/lib/python3.7/json/decoder.py in decode(self, s, _w)
    338         end = _w(s, end).end()
    339         if end != len(s):
--> 340             raise JSONDecodeError("Extra data", s, end)
    341         return obj
    342 

JSONDecodeError: Extra data: line 2 column 1 (char 153)