I have the following that is returned from a FQL query:
posts_fql = graph.fql({'posts':"SELECT uid, name, pic, username FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"})
print ast.literal_eval(json.dumps(posts_fql))
[
{
'fql_result_set': [
{
'username': 'sahithi.akasapu',
'pic': 'http://profile.ak.fbcdn.net/hprofile-ak-ash3/173521_1033451070_925702476_s.jpg',
'uid': 1033451070,
'name': 'Sahithi Akasapu'
},
{
'username': 'joe.kaster.73',
'pic': 'http://profile.ak.fbcdn.net/static-ak/rsrc.php/v1/yh/r/C5yt7Cqf3zU.jpg',
'uid': 100004855536430,
'name': 'Joe Kaster'
}
],
'name': 'posts'
}
]
I am trying to create a list in python from it using:
user_list= []
for user in posts_fql:
uid = user['fql_result_set'][0]['uid']
username = user['fql_result_set'][0]['username']
name = user['fql_result_set'][0]['name']
pic = user['fql_result_set'][0]['pic']
user_list.append([uid, username, name, pic])
When I print user_list, only the first set of data (for user ‘test’) is printed. How can I fix this?
Because you have the data structure wrong.
fql_result_setis outside of the user list. It goes:So, what you actually want is: