栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python Json load()返回字符串而不是字典?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Json load()返回字符串而不是字典?

好吧,首先您应该打印对象,以便您可以阅读它:

>>> from pprint import pprint>>> output = [{'in_reply_to_status_id_str': None, 'in_reply_to_screen_name': None, 'retweeted':     False, 'in_reply_to_status_id': None, 'contributors': None, 'favorite_count': 0, 'in_reply_to_user_id': None, 'coordinates': None, 'source': '<a href="http://twitter.com" rel="nofollow">Twitter Web Client</a>', 'geo': None, 'retweet_count': 0, 'text': 'Tweeting a url nhttp://t.co/QDVYv6bV90', 'created_at': 'Mon Sep 01 19:36:25 +0000 2014', 'entities': {'symbols': [], 'user_mentions': [], 'urls': [{'expanded_url': 'http://www.isthereanappthat.com', 'display_url': 'isthereanappthat.com', 'url': 'http://t.co/QDVYv6bV90', 'indices': [16, 38]}], 'hashtags': []}, 'id_str': '506526005943865344', 'in_reply_to_user_id_str': None, 'truncated': False, 'favorited': False, 'lang': 'en', 'possibly_sensitive': False, 'id': 506526005943865344, 'user': {'profile_text_color': '333333', 'time_zone': None, 'entities': {'description': {'urls': []}}, 'url': None, 'profile_background_image_url': 'http://abs.twimg.com/images/themes/theme1/bg.png', 'profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme1/bg.png', 'protected': False, 'default_profile_image': True, 'utc_offset': None, 'default_profile': True, 'screen_name': 'KickzWatch', 'follow_request_sent': False, 'following': False, 'profile_background_color': 'C0DEED', 'notifications': False, 'description': '', 'profile_sidebar_border_color': 'C0DEED', 'geo_enabled': False, 'verified': False, 'friends_count': 40, 'created_at': 'Mon Sep 01 16:29:18 +0000 2014', 'is_translator': False, 'profile_sidebar_fill_color': 'DDEEF6', 'statuses_count': 4, 'location': '', 'id_str': '2784389341', 'followers_count': 4, 'favourites_count': 0, 'contributors_enabled': False, 'is_translation_enabled': False, 'lang': 'en', 'profile_image_url': 'http://abs.twimg.com/sticky/default_profile_images/default_profile_6_normal.png', 'profile_image_url_https': 'https://abs.twimg.com/sticky/default_profile_images/default_profile_6_normal.png', 'id': 2784389341, 'profile_use_background_image': True, 'listed_count': 0, 'profile_background_tile': False, 'name': 'Maktub Destiny', 'profile_link_color': '0084B4'}, 'place': None}]>>> pprint(output)[{'contributors': None,  'coordinates': None,  'created_at': 'Mon Sep 01 19:36:25 +0000 2014',  'entities': {'hashtags': [],    'symbols': [],    'urls': [{'display_url': 'isthereanappthat.com',   'expanded_url': 'http://www.isthereanappthat.com',   'indices': [16, 38],   'url': 'http://t.co/QDVYv6bV90'}],    'user_mentions': []},  'favorite_count': 0,  'favorited': False,  'geo': None,  'id': 506526005943865344,  'id_str': '506526005943865344',  'in_reply_to_screen_name': None,  'in_reply_to_status_id': None,  'in_reply_to_status_id_str': None,  'in_reply_to_user_id': None,  'in_reply_to_user_id_str': None,  'lang': 'en',  'place': None,  'possibly_sensitive': False,  'retweet_count': 0,  'retweeted': False,  'source': '<a href="http://twitter.com" rel="nofollow">Twitter Web Client</a>',  'text': 'Tweeting a url nhttp://t.co/QDVYv6bV90',  'truncated': False,  'user': {'contributors_enabled': False,'created_at': 'Mon Sep 01 16:29:18 +0000 2014','default_profile': True,'default_profile_image': True,'description': '','entities': {'description': {'urls': []}},'favourites_count': 0,'follow_request_sent': False,'followers_count': 4,'following': False,'friends_count': 40,'geo_enabled': False,'id': 2784389341,'id_str': '2784389341','is_translation_enabled': False,'is_translator': False,'lang': 'en','listed_count': 0,'location': '','name': 'Maktub Destiny','notifications': False,'profile_background_color': 'C0DEED','profile_background_image_url': 'http://abs.twimg.com/images/themes/theme1/bg.png','profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme1/bg.png','profile_background_tile': False,'profile_image_url': 'http://abs.twimg.com/sticky/default_profile_images/default_profile_6_normal.png','profile_image_url_https': 'https://abs.twimg.com/sticky/default_profile_images/default_profile_6_normal.png','profile_link_color': '0084B4','profile_sidebar_border_color': 'C0DEED','profile_sidebar_fill_color': 'DDEEF6','profile_text_color': '333333','profile_use_background_image': True,'protected': False,'screen_name': 'KickzWatch','statuses_count': 4,'time_zone': None,'url': None,'utc_offset': None,'verified': False}}]

通过查看此内容,您可以看到输出是,

list
其中包含一个
dict
。要访问此文件,您需要:

>>> first_elem = output[0]

您还将看到

hashtags
密钥位于密钥下的
first_elem
第二层:
dict``entities

>>> entities = first_elem['entities']>>> pprint(entities){'hashtags': [], 'symbols': [], 'urls': [{'display_url': 'isthereanappthat.com','expanded_url': 'http://www.isthereanappthat.com','indices': [16, 38],'url': 'http://t.co/QDVYv6bV90'}], 'user_mentions': []}

现在您可以访问

hashtags

>>> entities['hashtags'][]

恰好是空列表。

要转换为JSON,请注意以下注释:

>>> import json>>> # Make sure output is the list object not a string representing the object>>> json_string = json.dumps(output)>>> jason = json.loads(output)>>> jason[0]['entities']['hashtags'][]

我认为您的问题是,您先输出了一个字符串

json.dumps
,这意味着
json.loads
将返回一个字符串,而不是json对象。

@Dan的答案是正确的,这不是有效的JSON。但是,这是一个有效的python字典,我假设您是使用python从Twitter获得的,然后打印了它。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/427601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号