запрос питон HTTP ДИКТ запрос

голоса
0

Вопрос: Напишите функцию с именем «query_dict» , что ключ-значение магазин как отображение параметров строк в числа с плавающей точкой. Функция будет сделать запрос HTTPS GET к URL « https://fury.cse.buffalo.edu/ps-api/a » со строкой запроса , содержащего те же пары ключ-значение из входного ключ-значение магазина. Ответ от сервера будет JSON - строка , представляющая объект в формате «{» ответ «:}» , где это число с плавающей точкой. Возвращает значение в ключе «ответ» , как поплавок

import urllib.request
import json
psp = https://fury.cse.buffalo.edu/ps-api/a
def query_dict(strfloat):
    query = ?
    for i in strfloat:
        query += (str(i) + = + str(strfloat[i]) + &)
        query = query [:1]
        response = urllib.request.urlopen(psp + query)
        content_string = response.read().decode()
        content = json.loads(content_string)
        return float(content[answer])

Функция query_dict некорректно на входе [{ 'г': 4, 'у': 0, 'х': 5}]

вернулся: -1,0 ожидается: 176,7

Как я могу исправить это?

Задан 27/11/2018 в 15:06
источник пользователем
На других языках...                            


1 ответов

голоса
0

query += (i + "=" + str(strfloat[i]) + "&")

Измените эту строку на:

query += (str(i) + "=" + str(strfloat[i]) + "&") Обратите внимание на ул () и кронштейн после strfloat[i]

Python не может добавить целое со строкой непосредственно. Вы должны типаж целого числа в строку для объединения строк. Вы также не тип литья значения strfloat[i]правильно, из - за неправильное размещение скобок.

EDIT: Обновленный код должен выглядеть следующим образом :

def query_dict(strfloat):
    query = "?"

    for i in strfloat:
        query += (str(i) + "=" + str(strfloat[i]) + "&")

    response = urllib.request.urlopen(psp + query)
    content_string = response.read().decode()
    content = json.loads(content_string)
    return float(content["answer"])
Ответил 27/11/2018 в 15:08
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more