2009-03-31 18 views
14

bir değer olmayan çifti kodlamak Python'da Google'ın AJAX (JSON) Web Arama API'sini kullanmaya çalışıyorum. Takılıyorum çünkü Python'un urllib.urlencode() kodlarını kodlamak için sadece dizeleri değil, değer çiftlerini alır. Google’ın API'sında, sorgu dizesi arama terimidir ve bir değişkenle ilişkilendirilmez.URL Python

query = "string that needs to be encoded" 
params = urllib.urlencode(query) # THIS FAILS 
# http://code.google.com/apis/ajaxsearch/documentation/reference.html 
url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&%s&%s" % (params, GOOGLE_API_KEY) 

request = urllib2.Request(url) 
request.add_header('Referer', GOOGLE_REFERER) 

search_results = urllib2.urlopen(request) 
raw_results = search_results.read() 
json = simplejson.loads(raw_results) 
estimatedResultCount = json['responseData']['cursor']['estimatedResultCount'] 

if estimatedResultCount != 0: 
    print "Google: %s hits" % estimatedResultCount 

Arama terimlerimi nasıl kodlarım?

cevap

36

Bunun yerine urllib.quote'u aradığını düşünüyorum.