Python Json lädt () einen zurückgegebenen String anstelle eines Wörterbuchs?
Ich versuche, ein einfaches JSON-Parsing mit dem in Python 3 integrierten JSON-Modul durchzuführen. Nach dem Lesen einer Reihe anderer Fragen zu SO und Googeln scheint dies ziemlich einfach zu sein. Ich glaube jedoch, dass anstelle des erwarteten Wörterbuchs eine Zeichenfolge zurückgegeben wird.
Zunächst ist hier der JSON, von dem ich Werte abrufen möchte. Es ist nur eine Ausgabe von Twitter API
[{'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}]
Ich habe diesen String einer Variablen namens json_string wie folgt zugewiesen:
json_string = json.dumps(output)
jason = json.loads(json_string)
Then, wenn ich versuche, einen bestimmten Schlüssel aus dem "Jason" -Wörterbuch zu erhalten:
print(jason['hashtags'])
Ich erhalte eine Fehlermeldung:
TypeError: string indices must be integers
Ich möchte die json-Ausgabe in ein Wörterbuch konvertieren und dann @ verwendejason[key_name]
call, um Werte mit den angegebenen Schlüsseln abzurufen. Gibt es etwas Offensichtliches, das ich hier vermisse?
Dies ist mein erstes Mal mit Python zu arbeiten, nachdem ich von Java gekommen bin. Ich liebe die Sprache und finde sie sehr mächtig. Also, jede Hilfe dazu wäre sehr dankbar!