Python 试图从twitterapi解析数据

Python 试图从twitterapi解析数据,python,json,twitter,Python,Json,Twitter,我在将twitter数据读入python时遇到了很多问题。我在以下输出中有tweet 我曾尝试使用python中的JSON.loads()加载每条推文,但我一直遇到错误。JSON valueError反馈不够具体,无法指出错误所在,我一直在努力通过肉眼找到错误 我还尝试了ast.literal_eval(),希望可以直接将数据作为字典加载,但我也很难实现这一想法 如果您能给我一些建议,我将不胜感激 这不是有效的JSON。您遇到的问题之一与None的价值有关 "contributors": Non

我在将twitter数据读入python时遇到了很多问题。我在以下输出中有tweet

我曾尝试使用python中的JSON.loads()加载每条推文,但我一直遇到错误。JSON valueError反馈不够具体,无法指出错误所在,我一直在努力通过肉眼找到错误

我还尝试了ast.literal_eval(),希望可以直接将数据作为字典加载,但我也很难实现这一想法


如果您能给我一些建议,我将不胜感激

这不是有效的JSON。您遇到的问题之一与None的价值有关

"contributors": None
  • None应更改为null(不带引号)
  • 字符串不应以“u”作为前缀
  • 真与假应该是真与假(不加引号)
参见维基百科

您拥有的数据几乎是有效的python,可以使用以下代码进行解析:

import re

a = '{u"contributors": None, u"truncated": False, u"text": u"Uber Germany retreats to Berlin, Munich https://t.co/OUTjo2vMgb", u"is_quote_status": False, u"in_reply_to_status_id": None, u"id": 660902084456288256L, u"favorite_count": 0, u"source": u"<a href="http://www.snsanalytics.com" rel="nofollow">SNS Analytics</a>", u"retweeted": False, u"coordinates": None, u"timestamp_ms": u"1446406310558", u"entities": {u"user_mentions": [], u"symbols": [], u"hashtags": [], u"urls": [{u"url": u"https://t.co/OUTjo2vMgb", u"indices": [40, 63], u"expanded_url": u"http://www.snsanalytics.com/iV9Oy0", u"display_url": u"snsanalytics.com/iV9Oy0"}]}, u"in_reply_to_screen_name": None, u"id_str": u"660902084456288256", u"retweet_count": 0, u"in_reply_to_user_id": None, u"favorited": False, u"user": {u"follow_request_sent": None, u"profile_use_background_image": True, u"default_profile_image": False, u"id": 119396644, u"verified": False, u"profile_image_url_https": u"https://pbs.twimg.com/profile_images/1225936492/Munich_normal.jpg", u"profile_sidebar_fill_color": u"DDEEF6", u"profile_text_color": u"333333", u"followers_count": 3701, u"profile_sidebar_border_color": u"C0DEED", u"id_str": u"119396644", u"profile_background_color": u"C0DEED", u"listed_count": 59, u"profile_background_image_url_https": u"https://pbs.twimg.com/profile_background_images/197414716/munich_places.jpg", u"utc_offset": 3600, u"statuses_count": 29594, u"description": None, u"friends_count": 397, u"location": u"Munich, Germany", u"profile_link_color": u"0084B4", u"profile_image_url": u"http://pbs.twimg.com/profile_images/1225936492/Munich_normal.jpg", u"following": None, u"geo_enabled": False, u"profile_background_image_url": u"http://pbs.twimg.com/profile_background_images/197414716/munich_places.jpg", u"name": u"Munich Daily", u"lang": u"en", u"profile_background_tile": True, u"favourites_count": 0, u"screen_name": u"MunichDaily", u"notifications": None, u"url": None, u"created_at": u"Wed Mar 03 14:31:12 +0000 2010", u"contributors_enabled": False, u"time_zone": u"Amsterdam", u"protected": False, u"default_profile": False, u"is_translator": False}, u"geo": None, u"in_reply_to_user_id_str": None, u"possibly_sensitive": False, u"lang": u"en", u"created_at": u"Sun Nov 01 19:31:50 +0000 2015", u"filter_level": u"low", u"in_reply_to_status_id_str": None, u"place": None}'
a = re.sub(', u"source": u"<a href=', ', u"source": ', a)
a = re.sub(' rel="nofollow">SNS Analytics</a>",', ',', a)
a = eval(a)

您的JSON无效

问题:

  • None
    应变为
    null
  • True
    应变为
    True
  • False
    应变为
    False
  • URL中不能有双引号。将它们更改为单引号或转义。
    • “源”:“
      应变为
      “源”:“
  • 您在那里有一个以
    L
    -
    660902084456288256L
    结尾的长字符。移除
    L
    ,使其仅为
    660902084456288256
  • 另外,当您解析它时,请确保任何字符串前面没有u,但这可能只是因为它是如何输出unicode的,所以请确保
以下是有效的JSON:

将来,您可以使用JSONLint验证数据:


退房。右侧有一个白色矩形焦点块,用于指定正确的语法和所有有效的类型。

谢谢您的帮助!谢谢你的帮助!
u"source": u"<a href="http://www.snsanalytics.com" rel="nofollow">SNS Analytics</a>"
u"source": u"http://www.snsanalytics.com"