Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24

Данные с биржи, как получить 3,4,5,6 цифру

07.06.2019, 00:06. Показов 6065. Ответов 38

Студворк — интернет-сервис помощи студентам
Приходит курс с биржи, в строчку пример (7687.56456521 06.06 23:37) при помощи my_list пытаюсь получить 3,4,5,6 и 19,20 цифру по счету. Ошибка и все тут. В уроках все проста а на деле приходящие данные он не видит. Помогите может кто сталкивался с такой проблемой. Заранее спасибо.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 import time
import requests
import threading
 
aa1 = 0
vvv = 0
tekst = (time.strftime("%m-%d`%H_%M"))
zapic = open(str(tekst) + ".txt", "w")
zapic.close()
c2 = 'USDT'
c1 = 'BTC'
print(aa1,vvv)
 
# Глобальный словарь, куда каждый поток складывает полученную информацию
stock_rates = {'b': 0}
 
 
# Получить последнюю цену с Bittrex
def get_bittrex_rates(pair):
    while True:
        try:
            stock_rates['b'] = \
            requests.get("https://bittrex.com/api/v1.1/public/getticker?market={pair}".format(pair=pair)).json()[
                'result']['Last']
        except Exception as e:
            print(e)
        time.sleep(5)
 
 
def show_results():
    while True:
        print(stock_rates['b'], time.strftime("%m.%d %H:%M", time.localtime()))
        aa1 = (stock_rates['b'])
        vvv = (time.strftime("%m.%d %H:%M"))
#        zapic = open(str(tekst) + ".txt", "a")
#        zapic.write(str(aa1) + " " + str(aa2) + " " + str(vvv) + "\n")# запись в файл .txt
#        zapic.close()
        my_list = (aa1)
        print(my_list[2,3,4,5,18,19])
        # [3,4,5,6] пробую 3,4,5,6 и 19,20 цифру получить!!
        time.sleep(10)
 
 
threads = []
 
# Подготавливаем потоки, складываем их в массив
bittrex_thread = threading.Thread(target=get_bittrex_rates, args=(c2 + '-' + c1,))
show_results_thread = threading.Thread(target=show_results)
 
threads.append(bittrex_thread)
threads.append(show_results_thread)
 
# Запускаем каждый поток
for thread in threads:
    thread.start()
 
# Ждем завершения каждого потока
for thread in threads:
    thread.join()
Добавлено через 18 минут
Может преобразовать в числовой функцией STR. Тоже не работает. Не нашел ни одного примера, когда получали числа из приходящих данных. Может кто ссылку кинет.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.06.2019, 00:06
Ответы с готовыми решениями:

Как из 4-х четверок получить цифру 10
Как из 4-х четверок получить цифру 10, используя любые математические действия.

Как получить 3 цифру числа ?
Переменная содержит число (от -10^9 до 10^9 ). Как найти третью справа цифру, если она присутствует ?

Как получить последнию цифру числа!
Здравствуйте! Скажите пожалуйста как получить последнюю цифру числа! Например! На входе: 1873

38
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.06.2019, 19:14
Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
>>> r = requests.get('https://bittrex.com/api/v1.1/public/getmarketsummary?market=USDT-BTC')
>>> data = r.json()
>>> from pprint import pprint
>>> pprint(data)
{'message': '',
 'result': [{'Ask': 7910.37220156,
             'BaseVolume': 2459685.17361929,
             'Bid': 7899.05609551,
             'Created': '2015-12-11T06:31:40.633',
             'High': 8012.94129999,
             'Last': 7899.05609547,
             'Low': 7515.0,
             'MarketName': 'USDT-BTC',
             'OpenBuyOrders': 1958,
             'OpenSellOrders': 1002,
             'PrevDay': 7648.37517594,
             'TimeStamp': '2019-06-10T16:07:28.89',
             'Volume': 319.39814257}],
 'success': True}
 
>>>data['result'][0]['Last']
7899.05609547
>>> round(data['result'][0]['Last'],2)
7899.06
В ответе сервера числа изначально является числами. И преобразовывать их вообще никуда не надо.
Разве что округлить, если нужно.
0
1 / 1 / 1
Регистрация: 13.06.2012
Сообщений: 12
10.06.2019, 22:33
Цитата Сообщение от Garry Galler Посмотреть сообщение
>>> round(data['result'][0]['Last'],2)
интересная формулировка, и на какой она версии работает?

может проще:
Python
1
2
3
4
5
6
7
8
import requests
 
r = requests.get('https://bittrex.com/api/v1.1/public/getmarketsummary?market=USDT-BTC')
data = r.json()
 
resultat = data['result'][0]['Last']
 
print("%.8f" % resultat)
7933.06900000
>>>
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
10.06.2019, 22:48  [ТС]
Garry Galler, Здравствуйте. Сейчас посмотрю. Спасибо.

Добавлено через 7 минут
Задача, здесь, при получении новой цены сравнить изменилась она, и если да то записать.
И возможность произвести операции с ценой, для своих вычислений. К примеру сложить после запятой 4 чифры на 4 и получить результат.

Добавлено через 3 минуты
OmenZ, Здравствуйте, Это получаю цену сделки, короткий код.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.06.2019, 22:50
Цитата Сообщение от OmenZ Посмотреть сообщение
и на какой она версии работает?
На любой.
Python
1
2
3
4
5
6
7
8
9
10
11
12
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> help(round)
Help on built-in function round in module __builtin__:
 
round(...)
    round(number[, ndigits]) -> floating point number
    
    Round a number to a given precision in decimal digits (default 0 digits).
    This always returns a floating point number.  Precision may be negative.
 
>>>
Python
1
2
3
4
5
6
7
8
9
10
11
12
Python 3.8.0a1 (tags/v3.8.0a1:e75eeb00b5, Feb  3 2019, 19:46:54) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> help(round)
Help on built-in function round in module builtins:
 
round(number, ndigits=None)
    Round a number to a given precision in decimal digits.
    
    The return value is an integer if ndigits is omitted or None.  Otherwise
    the return value has the same type as the number.  ndigits may be negative.
 
>>>
0
1 / 1 / 1
Регистрация: 13.06.2012
Сообщений: 12
10.06.2019, 22:52
Цитата Сообщение от Garry Galler Посмотреть сообщение
На любой.
на 3.7.3
ничего не выводит
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
10.06.2019, 22:55  [ТС]
Semen-Semenich, Ваш код работает самостоятельно, а как только на str_input = (vvv, k) приходят данные с формированные, код не работает. Пишет ошибка.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.06.2019, 22:58
Цитата Сообщение от OmenZ Посмотреть сообщение
на 3.7.3
ничего не выводит
Не может такого быть. Эта функция встроена в интерпретатор с незапамятных времен.
0
1 / 1 / 1
Регистрация: 13.06.2012
Сообщений: 12
10.06.2019, 22:58
Цитата Сообщение от Garry Galler Посмотреть сообщение
На любой.
Python
1
2
3
4
5
6
7
8
9
10
11
12
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> help(round)
Help on built-in function round in module builtins:
 
round(number, ndigits=None)
    Round a number to a given precision in decimal digits.
 
    The return value is an integer if ndigits is omitted or None.  Otherwise
    the return value has the same type as the number.  ndigits may be negative.
 
>>>
Цитата Сообщение от Garry Galler Посмотреть сообщение
>>> round(data['result'][0]['Last'],2)

но вот ваш код уходит в невидимку
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
10.06.2019, 23:00  [ТС]
Цитата Сообщение от OmenZ Посмотреть сообщение
Сообщение от Garry Galler
Н
У меня тоже не работает.

Добавлено через 1 минуту
Это не код, это данные, по процессу.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.06.2019, 23:03
Цитата Сообщение от OmenZ Посмотреть сообщение
но вот ваш код уходит в невидимку
Куда уходит?

Добавлено через 1 минуту
Цитата Сообщение от Владимир495 Посмотреть сообщение
У меня тоже не работает.
Ой, ну не работает - значит бросайте программировать. Добавить больше мне нечего.
0
1 / 1 / 1
Регистрация: 13.06.2012
Сообщений: 12
10.06.2019, 23:11
Цитата Сообщение от Garry Galler Посмотреть сообщение
Куда уходит?

Python
1
2
3
4
5
6
7
8
9
10
11
12
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>>
>>> r = requests.get('https://bittrex.com/api/v1.1/public/getmarketsummary?market=USDT-BTC')
>>> data = r.json()
>>>
>>> resultat = data['result'][0]['Last']
>>> ts = data['result'][0]['Created']
>>> print("%.8f" % resultat,ts)
7952.94766633 2015-12-11T06:31:40.633
>>>
========================= RESTART: C:/Python/ccc.py =========================
7952.94766633 2015-12-11T06:31:40.633
>>>

А вот в консоли он как раз таки выводит, но самое интересное то!
Что данная ваша формула
Цитата Сообщение от Garry Galler Посмотреть сообщение
Python
1
round(data['result'][0]['Last'],2)
не просто выдаёт после точки две цифры, а округляет данные в большую величину, или в меньшую если после точки 3-тья цифра меньше 5-ти
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
10.06.2019, 23:16  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
>>> r = requests.get('https://bittrex.com/api/v1.1/public/getmarketsummary?market=USDT-BTC')
>>> data = r.json()
>>> from pprint import pprint
>>> pprint(data)
{'message': '',
*'result': [{'Ask': 7910.37220156,
* * * * * * *'BaseVolume': 2459685.17361929,
* * * * * * *'Bid': 7899.05609551,
* * * * * * *'Created': '2015-12-11T06:31:40.633',
* * * * * * *'High': 8012.94129999,
* * * * * * *'Last': 7899.05609547,
* * * * * * *'Low': 7515.0,
* * * * * * *'MarketName': 'USDT-BTC',
* * * * * * *'OpenBuyOrders': 1958,
* * * * * * *'OpenSellOrders': 1002,
* * * * * * *'PrevDay': 7648.37517594,
* * * * * * *'TimeStamp': '2019-06-10T16:07:28.89',
* * * * * * *'Volume': 319.39814257}],
*'success': True}
>>>data['result'][0]['Last']
7899.05609547
>>> round(data['result'][0]['Last'],2)
7899.06
Выводит ошибку

Traceback (most recent call last):
File "C:/Users/Владимир Великий/Downloads/Telegram Desktop/102.py", line 1, in <module>
r = requests.get('https://bittrex.com/api/v1.1/public/getmarketsummary?market=USDT-BTC')
NameError: name 'requests' is not defined

Process finished with exit code 1
0
1 / 1 / 1
Регистрация: 13.06.2012
Сообщений: 12
10.06.2019, 23:18
Вот, что получается в консоли.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>>
>>> r = requests.get('https://bittrex.com/api/v1.1/public/getmarketsummary?market=USDT-BTC')
>>> data = r.json()
>>>
>>> resultat = data['result'][0]['Last']
>>> ts = data['result'][0]['Created']
>>> print("%.8f" % resultat,ts)
7955.09993167 2015-12-11T06:31:40.633
>>>
>>> round(data['result'][0]['Last'],2) # вывод две цифры после точки
7955.1
>>> round(data['result'][0]['Last'],8) #Вывод восемь цифр после точки
7955.09993167
>>>
Тогда получается, что если не полное число выводится. То тогда округляется.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.06.2019, 23:19
Цитата Сообщение от OmenZ Посмотреть сообщение
а округляет данные в большую величину,
А что-то иное разве писал? Ребят, вы чего курили? Естественно, round округляет о чем говорит само название функции.
Цитата Сообщение от OmenZ Посмотреть сообщение
А вот в консоли он как раз таки выводит
В консоли (точнее в IDLE) я не использовал ПРИСВАИВАНИЯ результата переменной, потому что это был ПРИМЕР и потому что в интерактивном режиме результат выводится автоматически.
Думать же надо.
0
1 / 1 / 1
Регистрация: 13.06.2012
Сообщений: 12
10.06.2019, 23:32
Цитата Сообщение от Garry Galler Посмотреть сообщение
В консоли (точнее в IDLE) я не использовал ПРИСВАИВАНИЯ результата переменной, потому что это был ПРИМЕР и потому что в интерактивном режиме результат выводится автоматически.
Думать же надо.
Так и нужно писать в консоли.

Выше Вы писали
Цитата Сообщение от Garry Galler Посмотреть сообщение
>>> round(float(s[0]),2) # "обрезание" числа до двух знаков после запятой
Согласен нужно думать, что писать. А не вводить в заблуждения.

И да само слово "round" округление, а не обрезание

И да нужно читать документацию.
Согласен.
1
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
10.06.2019, 23:32  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
В ответе сервера числа изначально является числами. И преобразовывать их вообще никуда не надо.
Разве что округлить, если нужно.
Округлять их нельзя, это точные данные биржи, по ним сделки проходят, если вы округлили, то сумма сделки становиться больше или меньше.
0
1 / 1 / 1
Регистрация: 13.06.2012
Сообщений: 12
10.06.2019, 23:53
Чтоб в IDLE, а не в консольном режиме работало нужно так:

Python
1
print(round(data['result'][0]['Last'],2))
Это будет округление после точки до двух цифр.
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24
11.06.2019, 00:43  [ТС]
Цитата Сообщение от OmenZ Посмотреть сообщение
Это будет округление после точки до двух цифр.
А если цена придет с одним значение после точки, он ошибку выдаст?
0
1 / 1 / 1
Регистрация: 13.06.2012
Сообщений: 12
11.06.2019, 01:05
Цитата Сообщение от Владимир495 Посмотреть сообщение
А если цена придет с одним значение после точки, он ошибку выдаст?
Второе число после точки будет "0"(если есть обязательно два числа), а так будет одно после точки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.06.2019, 01:05

Как получить по индексу цифру числа
Пока что я использую такой вот метод int ci = 12398; string ac = ci.ToString(); int arrInt = new int; for(int n = 0; n &lt;...

Как из index.php?id=50 получить только цифру 50?
Здравствуйте! Подскажите пожалуйста, как мне из index.php?id=50 получить только цифру 50. Спасибо.

Как получить данные используя метод Post? В чем причина того, что Viewbag не принимает данные?
Первая форма отправляет запрос foreach p in Model &lt;form method=&quot;post&quot;&gt; &lt;td class=&quot;pricelight&quot;&gt;&lt;input...

Tkinter. Как получить данные (поместить в какие-либо переменные) о том, какие данные находятся в виджетах
Как получить данные (поместить в какие-либо переменные) о том, какая цифра находится в текстовом поле Entry, какой RadioButton находится в...

Веб. Как изменить данные в базе по изменению данных инпута? Получить измененные данные инпута?
Доброго времени суток! Ситуация такая.. есть форма с таблицей, содержание таблицы выводится из базы. В таблице есть инпут ( &lt;input...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru