0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 24

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

07.06.2019, 00:06. Показов 6079. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
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,которые раз в сутки записываются на сервер компании. Т. к. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru