2013-08-11 2 views
-2

У меня есть простой код для получения URL-адресов из поиска bing.«ТипError: аргумент float, а не dict» Ошибка для поиска bing

import requests  
URL = "https://mykey:[email protected]/Bing/Search/Web?$format=json&Query='%27heythere%27'" 
API_KEY = 'mykey' 
def request(query, **params): 
    r = requests.get(URL % {'query': query}, auth=('', API_KEY)) 
    print r.content, r.status_code 
    return r.json()['d']['results'] 

r = request("JohnDalton") 
print r.status_code 

print r[0]['Url'] 

Это возвращает ошибку, как упоминалось выше, для линии

r = requests.get(URL % {'query': query}, auth=('', API_KEY)) 

Если вы идете по ссылке в URL вы побудили дать ключ, который workd хорошо, она возвращает URLs в браузере ,

+0

Выполняет ли 'r = request.get (URL, data = {'query': query}, auth = ('', API_KEY))' работает для вас? –

+0

@ Алберт Megia вдавлен в код. @ JamieBull нет, это не так. – user2626758

+1

ТЕПЕРЬ правильно, когда я увидел это, это было не так :) –

ответ

0

Это работает для меня:

URL = "https://mykey:[email protected]/Bing/Search/Web?$format=json&Query='%(query)s'" 

res = URL % {'query': "JoeDalton"} 
print res 

Получение:

https://mykey:[email protected]/Bing/Search/Web?$format=json&query='JoeDalton' 

Если вы хотите форматировать строку с Словаре, вы должны указать имя ключа с% (key_name) s. Если вы хотите использовать только один параметр в формат строка, я хотел бы использовать только «% S» и отформатировать его с «URL%„JoeDalton“

Надеется, что это помогает :)

1

Вашего формату строка ...at=json&Query='%27heythe... содержит the format specifier %27he, который печатает float. Вы передаете строку формата dict.

Смежные вопросы