I'm extracting from a nested json.file in python 3.8 with lots of dicts and getting the following key error:
extended_tweet = data[str(i)]['extended_tweet']['full_text'] KeyError: 'extended_tweet'
How can I search in nested json.files for a field, which is hided in different structures in each dict? I think my inflexibility way of defining the fields is preventing the right output, but I can't figure out how to fix it.
for i in data:
date = data[str(i)]['created_at']
account = data[str(i)]['user']['name']
location = data[str(i)]['user']['location']
truncated = data[str(i)]['truncated']
tweet = data[str(i)]['text']
extended_tweet = data[str(i)]['extended_tweet']['full_text']
retweeted_status = data[str(i)]['retweeted_status']['extended_tweet']['full_text']
if truncated == 'True':
print(truncated, date, account, location, extended_tweet)
elif 'RT' in tweet:
print(truncated, date, account, location, retweeted_status)
else:
print(truncated, date, account, location, tweet)
Here is an example of one dict in my json.file. The number "3" stands for the dict and I need do get the data from the field extended_tweet.full_text. Every pathfinder displays the path x.extended_tweet.full_text. But if I'm using this, I'm getting the error shown above.
"3": {
"created_at": "time",
"id": id,
"id_str": "id",
"text": "text",
"display_text_range": [
0,
140
],
"source": "",
"truncated": true,
"in_reply_to_status_id": null,
"in_reply_to_status_id_str": null,
"in_reply_to_user_id": null,
"in_reply_to_user_id_str": null,
"in_reply_to_screen_name": null,
"user": {
"id": ,
"id_str": "",
"name": "",
"screen_name": "name",
"location": "location",
"url": "url",
"description": "description",
"translator_type": "none",
"derived": {
"locations": [
{
"country": "country",
"country_code": "land",
"locality": "locality",
"region": "region",
"full_name": "full_name",
"geo": {
"coordinates": [
number,
number
],
"type": "point"
}
}
]
},
"protected": false,
"verified": true,
"followers_count": number,
"friends_count": number,
"listed_count": number,
"favourites_count": number,
"statuses_count": number,
"created_at": "time",
"utc_offset": null,
"time_zone": null,
"geo_enabled": false,
"lang": null,
"contributors_enabled": false,
"is_translator": false,
"profile_background_color": "number",
"profile_background_image_url": "gif",
"profile_background_image_url_https": "link",
"profile_background_tile": true,
"profile_link_color": "607696",
"profile_sidebar_border_color": "FFFFFF",
"profile_sidebar_fill_color": "EFEFEF",
"profile_text_color": "333333",
"profile_use_background_image": true,
"profile_image_url": "link",
"profile_image_url_https": "link",
"profile_banner_url": "bannerurl",
"default_profile": false,
"default_profile_image": false,
"following": null,
"follow_request_sent": null,
"notifications": null
},
"geo": null,
"coordinates": null,
"place": null,
"contributors": null,
"is_quote_status": false,
"extended_tweet": {
"full_text": "full_text",