长复杂的字符串到json或字典

时间:2013-03-19 09:38:42

标签: python json

是否可以将以下string转换为字典或json对象:

  

{“created_at”:“Thu Feb 19 11:28:52 +0000 2009”,“description”:“Le   p \ u00f4le de comp \ u00eititit \ u00e9 de la fili \ u00e8re des contenus   et services num \ u00e9riques。 http://www.capdigital.com //   http://www.facebook.com/capdigitalparisregion“,”favourites_count“:7,   “followers_count”:5996,“friends_count”:671,“geo_enabled”:是的,   “id”:21290877,“lang”:“en”,“listed_count”:344,“location”:   “Paris”,“name”:“Cap Digital”,“profile_background_color”:“920707”,   “profile_background_tile”:true,“profile_image_url”:   “http://a0.twimg.com/profile_images/2263411541/cap_square_normal.png”,   “profile_link_color”:“0084B4”,“profile_sidebar_fill_color”:   “http://a0.twimg.com/profile_background_images/157539330/xad3a63c73eff9ba8f89f81e01c10a4d.jpg”,   “profile_text_color”:“333333”,“protected”:false,“screen_name”:   “Cap_Digital”,“status”:{“created_at”:“Mon Mar 18 16:23:05 +0000   2013“,”favited“:false,”id“:313687008188956672,”retweet_count“:   5,“转推”:虚假,“来源”:“http://clocktweets.com/”   rel = \“nofollow \”> Clocktweets“,”text“:”Plus que quelques jours   avant @ 5Plus_Forum,conf \ u00e9rence sur la ville intelligente!   http://t.co/GV5o6fiqUh“,”截断“:false},”statuses_count“:2121,   “time_zone”:“巴黎”,“网址”:“http://www.capdigital.com”,   “utc_offset”:3600}

我试过json.load()它给出了以下追溯:

Traceback (most recent call last):
  File "C:\Users\schatterjee\workspace\twittermining\main.py", line 82, in <module>
    treat_files()      
  File "C:\Users\schatterjee\workspace\twittermining\main.py", line 74, in treat_files
    d = json.load(row[0])
  File "C:\Python27\lib\json\__init__.py", line 274, in load
    return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'

3 个答案:

答案 0 :(得分:3)

您应该使用json.loads()s代表“字符串”而不是json.load()

答案 1 :(得分:1)

您提供的字符串中有两个错误,修改后的字符串被正确解析为JSON

{'created_at': 'Thu Feb 19 11:28:52 +0000 2009',
 'description': 'Le p\\u00f4le de comp\\u00e9titivit\\u00e9 de la fili\\u00e8re des contenus et services num\\u00e9riques. http://www.capdigital.com // http://www.facebook.com/capdigitalparisregion',
 'favourites_count': 7,
 'followers_count': 5996,
 'friends_count': 671,
 'geo_enabled': True,
 'id': 21290877,
 'lang': 'en',
 'listed_count': 344,
 'location': 'Paris',
 'name': 'Cap Digital',
 'profile_background_color': '920707',
 'profile_background_tile': True,
 'profile_image_url': 'http://a0.twimg.com/profile_images/2263411541/cap_square_normal.png',
 'profile_link_color': '0084B4',
 'profile_sidebar_fill_color': 'http://a0.twimg.com/profile_background_images/157539330/xad3a63c73eff9ba8f89f81e01c10a4d.jpg',
 'profile_text_color': '333333',
 'protected': False,
 'screen_name': 'Cap_Digital',
 'status': {'created_at': 'Mon Mar 18 16:23:05 +0000 2013',
            'favorited': False,
            'id': 313687008188956672L,
            rel=\\"nofollow\\">Clocktweets", # here
            'retweet_count': 5,
            'retweeted': False,
            'source': 'http://clocktweets.com/\\',
            'text': 'Plus que quelques jours avant @5Plus_Forum, conf\\u00e9rence sur la ville intelligente ! http://t.co/GV5o6fiqUh',
            'truncated': False},
 'statuses_count': 2121,
 'time_zone': 'Paris',
 'url': 'http://www.capdigital.com',
 'utc_offset': 3600}

答案 2 :(得分:0)

您可以先将字符串转换为类似文件的缓冲区:

json.load(StringIO.StringIO(your_string))