Python解释JSON值

时间:2016-05-02 22:43:10

标签: python json

我正在处理一些Google自定义搜索引擎查询,并通过Python脚本以JSON格式返回结果。我感兴趣的其中一个字段是totalResults字段,它会告诉我搜索中有多少匹配,我需要进行多次查询,因为Google一次只能返回10次点击。

function showAlt(){
  var img = document.getElementsByTagName("img");
  var text = document.getElementById("text");

  for(var i=0; i < img.length; i++){
    img[i].addEventListener("mouseover", function(){
      var alt = img[i].alt;
      alt.appendChild(text);}}

}

当我收到我的搜索结果时

#!/usr/bin/python

import requests
import json
import re

r=requests.get("https://www.googleapis.com/customsearch/v1?key=MY_GOOGLE_API_KEY&cx=MY_APP_ID&q=MY_QUERY&alt=json",)

myjson=r.json()

print myjson["searchInformation"]["totalResults"]

for hit in myjson["items"]:
        date=re.match('\w+ \d+\, \d+',hit["snippet"])
        print str(date.group())+" "+hit["formattedUrl"]

我希望Python返回totalResults的值:

u'searchInformation': {u'formattedSearchTime': u'0.26',
                    u'formattedTotalResults': u'489',
                    u'searchTime': 0.25836300000000001,
                    u'totalResults': u'489'},

但是,不是返回489,而是返回21,这似乎是totalResults字段中整数的总和。那么如何抓住这个领域的价值呢?

1 个答案:

答案 0 :(得分:0)

这有效:

>>> import json
>>> 
>>> server_response = '{"searchInformation": {"formattedSearchTime": "0.26", "formattedTotalResults": "489", "searchTime": 0.25836300000000001, "totalResults": "489"} }'
>>> myjson = json.loads(server_response)
>>> print myjson["searchInformation"]["totalResults"]
489

也许这可以帮助您调试您遇到的问题。