在python中获取url的内容

时间:2013-02-06 18:14:03

标签: python urllib2

import urllib2
response = urllib2.urlopen('http://api.xyz.com')
html = response.read()

IN http://api.xyz.com

{
  "responseHeader":{
    "status":0,
    "QTime":18,
    "params":{
      "indent":"on",
      "q":"",
      "wt":"json",}},
  "response":{"numFound":7984,"start":0,"maxScore":1.0,"docs":[
      {
       "id":"21",
       "first_name":"anurag"
      },
      {
       "id":"31",
       "first_name":"abhishek"
      }
    ]
}

问题是:这个url会返回json输出。我想读取该json文件,但它显示错误:字符串索引必须是整数,而不是str。

1 个答案:

答案 0 :(得分:2)

您需要使用json library(包含在Python中)将JSON响应转换为python结构:

import json

import urllib2
response = urllib2.urlopen('http://api.xyz.com')
data = json.load(response)  # note, no `.read()`, the library handles that

print data['response']