Форум сайта python.su
Здравствуйте.
Не являюсь программистом, но сейчас в силу необходимости пытаюсь написать программу для получения данных с API сайта.
Вот в такой простецкой функции вылазиет ошибка:
import requests
r = requests.get('https://explorer.travelflex.org/api/getdifficulty')
if r<2000: print(r.text)
Ошибка: TypeError: ‘<’ not supported between instances of ‘Response’ and ‘int’
Вопрос: Response с API возвращает число, но почему это число в формате (или как это называется) Response, и как сделать так чтобы сравнить это возврщаемое число с каким то другим?
Офлайн
kornev
if r<2000: print(r.text)
if r.status_code == 200
Офлайн
Спасибо. Но может быть я неправильно выразился. Возвращаемый параметр r это число, которое нужно сравнить с заданным if r<2000
Офлайн
>>> import requests >>> >>> r = requests.get('https://explorer.travelflex.org/api/getdifficulty') >>> r.content b'962.32609059' >>> float(r.content) 962.32609059 >>>
Офлайн
import requests
r = requests.get('http://contcoinexplorer.com/api/getdifficulty')
r.content
float(r.content)
if r < 2000: print('сложность подходящая',r)
else: print('сложность высокая')
Все равно пишет:
TypeError: ‘<’ not supported between instances of ‘Response’ and ‘int’
Офлайн
>>> import requests >>> >>> r = requests.get('https://explorer.travelflex.org/api/getdifficulty') >>> >>> n = float(r.content) >>> if n < 2000: ... print('ok') ... else: ... print('fail') ... ok >>>
Офлайн
py.user.nextВсе работает. Спасибо большое!!!
Офлайн
А может быть еще подскажите если не сложно.
Нужно на Nice Hash узнать цену последнего рабочего ордера.
Запрос выглядит таким образом:
import requests
r = requests.get('https://api.nicehash.com/api?method=orders.get&location=0&algo=0')
import json
obj = json.loads(r.text)
print(json.dumps(obj, sort_keys=True, indent=4, separators',',': ')))
Выдает:
{
“method”: “orders.get”,
“result”: {
“orders”: [
{
“accepted_speed”: “32.13589595”,
“algo”: 0,
“alive”: true,
“id”: 1389787,
“limit_speed”: “0.03”,
“price”: “1.241”,
“type”: 1,
“workers”: 60
},
{
“accepted_speed”: “9.37587087”,
“algo”: 0,
“alive”: true,
“id”: 1391433,
“limit_speed”: “0.01”,
“price”: “1.2514”,
“type”: 1,
“workers”: 24
},
{
“accepted_speed”: “9.98141943”,
“algo”: 0,
“alive”: true,
“id”: 1391640,
“limit_speed”: “0.01”,
“price”: “1.2579”,
“type”: 1,
“workers”: 0
},
{
“accepted_speed”: “28.87921128”,
“algo”: 0,
“alive”: true,
“id”: 1392500,
“limit_speed”: “0.03”,
“price”: “1.3211”,
“type”: 1,
“workers”: 0
},
И т.д.
Как можно найти price (цифровое значение чтобы потом с ним оперировать) в той ПЕРВОЙ позиции где “workers”: 0??
Офлайн
Если Вам необходимо узнать все workers + price
import requests req = requests.get('https://api.nicehash.com/api?method=orders.get&location=0&algo=0').json() for key in req['result']['orders']: print(key['workers'], key['price']) # Как сформировать строку - это на Ваше усмотрение
for key in req['result']['orders']: if key['workers'] == 0: print(key['price'])
Отредактировано spikejke (Апрель 2, 2018 21:06:29)
Офлайн