Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 1, 2018 18:44:49

kornev
Зарегистрирован: 2018-04-01
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по Response

Здравствуйте.
Не являюсь программистом, но сейчас в силу необходимости пытаюсь написать программу для получения данных с 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, и как сделать так чтобы сравнить это возврщаемое число с каким то другим?

Офлайн

#2 Апрель 1, 2018 19:07:23

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Вопрос по Response

kornev
if r<2000: print(r.text)
 if r.status_code == 200

Офлайн

#3 Апрель 1, 2018 22:22:33

kornev
Зарегистрирован: 2018-04-01
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по Response

Спасибо. Но может быть я неправильно выразился. Возвращаемый параметр r это число, которое нужно сравнить с заданным if r<2000

Офлайн

#4 Апрель 2, 2018 01:18:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9999
Репутация: +  857  -
Профиль   Отправить e-mail  

Вопрос по Response

  
>>> import requests
>>> 
>>> r = requests.get('https://explorer.travelflex.org/api/getdifficulty')
>>> r.content
b'962.32609059'
>>> float(r.content)
962.32609059
>>>



Офлайн

#5 Апрель 2, 2018 08:42:39

kornev
Зарегистрирован: 2018-04-01
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по Response

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’

Офлайн

#6 Апрель 2, 2018 09:34:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9999
Репутация: +  857  -
Профиль   Отправить e-mail  

Вопрос по Response

  
>>> import requests
>>> 
>>> r = requests.get('https://explorer.travelflex.org/api/getdifficulty')
>>> 
>>> n = float(r.content)
>>> if n < 2000:
...     print('ok')
... else:
...     print('fail')
... 
ok
>>>



Офлайн

#7 Апрель 2, 2018 09:39:35

kornev
Зарегистрирован: 2018-04-01
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по Response

py.user.next
Все работает. Спасибо большое!!!

Офлайн

#8 Апрель 2, 2018 12:50:50

kornev
Зарегистрирован: 2018-04-01
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по Response

А может быть еще подскажите если не сложно.
Нужно на 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??

Офлайн

#9 Апрель 2, 2018 20:58:56

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

Вопрос по Response

Если Вам необходимо узнать все 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']) # Как сформировать строку - это на Ваше усмотрение
Где workers равен 0
 for key in req['result']['orders']:
	if key['workers'] == 0:
		print(key['price'])

Отредактировано spikejke (Апрель 2, 2018 21:06:29)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version