【问题标题】:Parse a JSON String from Facebook Graph API using Python使用 Python 从 Facebook Graph API 解析 JSON 字符串
【发布时间】:2014-02-14 07:21:32
【问题描述】:

我正在尝试编译我所有的 facebook 朋友用户 ID,但输出对我来说很难处理。我怎样才能简化?目前看起来是这样的:

{
    u'friends': {
        u'paging': {
            u'next': u'https://graph.facebook.com/556702392/friends?access_token=-MYACCESSTOKEN-&limit=5000&offset=5000&__after_id=100005821213415'
        }, 
        u'data': [
            {u'name': u'Ian Fung', u'id': u'419972'}, 
            {u'name': u'Jason Turer', u'id': u'420694'},
            ...
        ]
   }
   ...
}

这是我能想到的:

try:
    resp = urllib2.urlopen(url)
    contents = resp.read()
except urllib2.HTTPError, error:
    contents = error.read()

json_encoded = json.loads(contents)
print json_encoded["data"]["id"]

如何只存储 ID?

【问题讨论】:

  • 你试过什么?问题是您无法解析 JSON,无法从中提取值,...?你有错误吗?更具体并提供您的代码。
  • 看来他需要提取id。 (他正在使用json 包)

标签: python json facebook api parsing


【解决方案1】:

不完全清楚你想要什么数据,但是这个列表理解从friendsdata中提取id

>>> json_data = {u'friends': {u'paging': {u'next': u'https://graph.facebook.com/556702392/friends?access_token=-MYACCESSTOKEN-&limit=5000&offset=5000&__after_id=100005821213415'}, u'data': [{u'name': u'Ian Fung', u'id': u'419972'}, {u'name': u'Jason Turer', u'id': u'420694'}]}}
>>> [x['id'] for x in json_data['friends']['data']]
[u'419972', u'420694']

【讨论】:

  • 谢谢 - 完成了这项工作。我怎样才能摆脱 u'' 部分?我在朋友中为 y 尝试过:y.replace("u", "") 但它什么也没做
  • uunicode 字符串的表示法。您可以忽略它(如果您打印字符串,它将不存在),或致电str(y)
【解决方案2】:

希望这对您有所帮助(并且您给定的数据很笨拙且不清楚)

import json
from pprint import pprint

json_data=open('json_data')
decoded_data = json.load(json_data)
pprint(decoded_data)
json_data.close()

你可以像这样获取json值

decoded_data["friends"]["pagind"]["next"]
decoded_data["data"]["name"]
decoded_data["value"]

【讨论】:

    猜你喜欢
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    相关资源
    最近更新 更多