2016-05-02 16 views
0

私はいくつかのGoogleカスタム検索エンジンのクエリに取り組んでおり、結果をPythonスクリプト経由でJSON形式に戻しています。私が興味を持っているフィールドの1つはtotalResultsフィールドです。これは検索にヒット数が表示され、複数のクエリを実行する必要があります.Googleは一度に10ヒットしか返しません。JSON値をPythonで解釈する

#!/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"] 

私は戻って

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

を私の検索結果を取得すると、私はPythonはtotalResultsの値戻りたい:

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

むしろ489を返すよりは、Pythonは思われる21を返していますtotalResultsフィールドの整数の合計になるようにします。どのようにこのフィールドの価値を引き継ぐのですか?

+0

編集に追加された情報が追加されました。尋ねられた前に質問が誤って送信されました。 –

+0

'print r.text'、' print myjson'、 'print myjson [" searchInformation "]'を追加して、Googleが返すものを見てください。 –

+0

私はGoogleが何を返すのか知っています。なぜPythonが、格納された値を返すのではなく、totalResultsフィールドの数値を合計しているのかを知りたいのですが。 –

答えて

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 

は、多分それはあなたが持っている問題をデバッグするのに役立ちます。

関連する問題