I have a dictionary (result_dict) as follows.
{'11333216@N05': {'person': {'can_buy_pro': 0,
'description': {'_content': ''},
'has_stats': '1',
'iconfarm': 3,
'iconserver': '2214',
'id': '11333216@N05',
'ispro': 0,
'location': {'_content': ''},
'mbox_sha1sum': {'_content': '8eb2e248cbad94e2b4a5aae75eb653c7e061a90c'},
'mobileurl': {'_content': 'https://m.flickr.com/photostream.gne?id=11327876'},
'nsid': '11333216@N05',
'path_alias': 'kishansamarasinghe',
'photos': {'count': {'_content': 442},
'firstdate': {'_content': '1193073180'},
'firstdatetaken': {'_content': '2000-01-01 00:49:17'}},
'photosurl': {'_content': 'https://www.flickr.com/photos/kishansamarasinghe/'},
'profileurl': {'_content': 'https://www.flickr.com/people/kishansamarasinghe/'},
'realname': {'_content': 'Kishan Samarasinghe'},
'timezone': {'label': 'Sri Jayawardenepura',
'offset': '+06:00',
'timezone_id': 'Asia/Colombo'},
'username': {'_content': 'Three Sixty Five Degrees'}},
'stat': 'ok'},
'117692977@N08': {'person': {'can_buy_pro': 0,
'description': {'_content': ''},
'has_stats': '0',
'iconfarm': 1,
'iconserver': '404',
'id': '117692977@N08',
'ispro': 0,
'location': {'_content': 'Almere, The Nederlands'},
'mobileurl': {'_content': 'https://m.flickr.com/photostream.gne?id=117600164'},
'nsid': '117692977@N08',
'path_alias': 'meijsvo',
'photos': {'count': {'_content': 3237},
'firstdate': {'_content': '1392469161'},
'firstdatetaken': {'_content': '2013-06-23 14:39:30'}},
'photosurl': {'_content': 'https://www.flickr.com/photos/meijsvo/'},
'profileurl': {'_content': 'https://www.flickr.com/people/meijsvo/'},
'realname': {'_content': 'Markéta Eijsvogelová'},
'timezone': {'label': 'Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna',
'offset': '+01:00',
'timezone_id': 'Europe/Amsterdam'},
'username': {'_content': 'meijsvo'}},
'stat': 'ok'},
'21539776@N02': {'person': {'can_buy_pro': 0,
'description': {'_content': ''},
'has_stats': '1',
'iconfarm': 0,
'iconserver': '0',
This contains more than 150 usernames (e.g. 11333216@N05)
. I want to extract 'mobileurl'
for each user and create a dataframe containing username
and mobileurl
columns. I couldn't find a way to iterate each user and extract his mobileurl
as indexing is impossible. However, I have extract the mobileurl for one of the users as follows.
result_dict['76617062@N08']["person"]["mobileurl"]['_content']
'https://m.flickr.com/photostream.gne?id=76524249'
Would be grateful if someone can help, as I'm a bit new to python.
Iterate through the dictionarys list of keys which in this case are the usernames, then use each one to access each top level dict and from there dive through all the other layers to find the exact data you need. The mobileurl in your example.
Once you have these 2 variables, add them to your dataframe.
# Iterate through list of users
for user in result_dict.keys():
# use each username to find the mobileurl you need within
mobileurl = result_dict[user]["person"]["mobileurl"]["_content"]
# Add the variables 'user' and 'mobileurl' to dataframe as you see fit