2013-01-04 84 views
0
#! /usr/bin/python 
import pprint 

from apiclient.discovery import build 


def main(): 
    service = build("customsearch", "v1",       
    developerKey="<mykey>") 

    res = service.cse().list(
    q='the.hobbit.2012', 
    cx='<the other key>', 
).execute() 
pprint.pprint(res) 
if __name__ == '__main__': 
main() 

是我运行的代码和下面是结果我得到:蟒谷歌API获取特定信息

{u'context': {u'title': u'IMDB Search Engine'}, 
u'items': [{u'cacheId': u'kzgitw0HPeAJ', 
      u'displayLink': u'www.imdb.com', 
      u'formattedUrl': u'www.imdb.com/title/tt0903624/', 
      u'htmlFormattedUrl': u'www.imdb.com/title/tt0903624/', 
      u'htmlSnippet': u'Directed by Peter Jackson. With Martin Freeman, Ian  McKellen, Richard Armitage<br> , Andy Serkis. A younger and more reluctant <b>Hobbit</b>,  Bilbo Baggins, sets out on <b>...</b>', 
      u'htmlTitle': u'<b>The Hobbit</b>: An Unexpected Journey (<b>2012</b>) -  IMDb',  
      u'kind': u'customsearch#result', 
      u'link': u'http://www.imdb.com/title/tt0903624/', 
      u'pagemap': {u'aggregaterating': [{u'bestrating': u'10', 
               u'ratingcount': u'157,307', 
               u'ratingvalue': u'8.4', 
               u'reviewcount': u'855'}], 

现在的问题是,如果我想从u'formattedUrl” 信息我以为我可以做

urlinfo = res['item']['url']['formattedUrl'] 

像我会这样做与forexample Objconfig。但那不行。那么我如何获得具体的信息呢?有没有简单的方法来做到这一点?

回答

1

From Google API Client documentation:“响应从JSON响应建立一个Python对象......”

items的值是一个数组,所以你需要指定要检索的元素的ID:

urlinfo = res['items'][0]['formattedUrl']