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

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

07.06.2019, 00:06. Показов 5876. Ответов 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
Ответ Создать тему
Новые блоги и статьи
[golang] Insert Delete GetRandom O(1) (Leetcode: 380)
alhaos 16.06.2026
Insert Delete GetRandom O(1) Сложность: Medium Источник: LeetCode 380 Задача Реализовать структуру данных RandomizedSet, которая поддерживает следующие операции за O(1) в среднем:
Свет в конце тоннеля
kumehtar 16.06.2026
Поймал себя на одной мысли. Раньше мне всегда казалось неправильным жить без чёткого понимания, куда всё идёт. Будто я иду по дороге судьбы, но не знаю, куда она ведёт. А раз не знаю — значит,. . .
[golang] Реализация стека с поддержкой получения минимального элемента за O(1)
alhaos 16.06.2026
Min Stack Сложность: Medium Источник: LeetCode 155 Задача: Реализовать стек который поддерживает push, pop, top и получение минимального элемента за O(1). Методы:
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru