如何使用urllib2从网站返回的JSON中提取值?

时间:2014-07-31 13:26:02

标签: python

我的第一个python脚本出了问题 我想创建脚本,让我自动从Facebook上的个人资料链接中获取名称 例如: 当我在脚本中输入数字4时 我希望它得到" first_name"来自这个网站 https://graph.facebook.com/4 并打印标记

类似的东西:

x = {
   "id": "4",
   "first_name": "Mark",
   "gender": "male",
   "last_name": "Zuckerberg",
   "link": "https://www.facebook.com/zuck",
   "locale": "en_US",
   "name": "Mark Zuckerberg",
   "username": "zuck"
}
print x.get("first_name")

但是使用urllib2可以直接从网站上获取信息

1 个答案:

答案 0 :(得分:1)

我要求用户输入一个数字,然后将该数字连接到基本网址,它会尝试获取响应,如果成功则从网址加载数据,否则会输出错误并退出。然后检查实际数据中是否有错误消息,如果有打印,如果没有,则打印出第一个名称。

import json
import urllib
import sys

baseUrl = 'https://graph.facebook.com/'
num = str(raw_input('Enter a number: '))

url = baseUrl + num

try:
    response = urllib.urlopen(url)
except:
    print 'Invalid url.'
    sys.exit(1)

data = json.load(response)
if 'error' in data:
    print data['error']['message']
else:
    print data['first_name']

如果您特别想使用urllib2,那就是它的样子:

import json
import urllib2
import sys

baseUrl = 'https://graph.facebook.com/'
num = str(raw_input('Enter a number: '))

url = baseUrl + num

try:
    response = urllib2.urlopen(url)
except:
    print 'Invalid url.'
    sys.exit(1)

data = json.load(response)
if 'first_name' in data:
    print data['first_name']