@ru_python

Страница 6311 из 9768
Ivan
22.08.2018
19:58:15
даже если в d ключами являются не строки?

Aragaer
22.08.2018
19:58:24
а когда dict(**d), то ты передаешь это в функцию dict (или это конструктор), а значит ключи становятся кейвордами. А кейворды должны быть строками

Ivan
22.08.2018
19:58:51
а в первом случае почему тогда ему и числа катят?

Aragaer
22.08.2018
19:59:05
>>> d = {(1,2):3} >>> d2 = {**d} >>> d3 = dict(**d) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: keyword arguments must be strings

Google
Ivan
22.08.2018
19:59:07
и работает нормально d[1]

Aragaer
22.08.2018
19:59:13
потому что ключами словаря могут быть любые hashable

Ivan
22.08.2018
19:59:20
ну вот. Собственно, в чём смысл

Aragaer
22.08.2018
19:59:22
а кейвордами у коллаблов только строки

и все. Просто встроенные ограничения синтаксиса

Ivan
22.08.2018
19:59:53
ааа, вроде что-то понял

Aragaer
22.08.2018
20:00:01
нельзя написать some_func(1=15, (2,3)=4)

потому что синтаксис не дает

Ivan
22.08.2018
20:00:47
да, такие параметры и словарь - разные вещи

спасибо

просто хотел сложить 2 словаря по типу d = dict(**d1, **d2), а выйдет лишь что-то вроде d = {}; d.update(d1)... ну или через цикл, если их много

Aragaer
22.08.2018
20:03:41
делай через {**d1, **d2}

Ivan
22.08.2018
20:03:54
а если там ключём не строка будет?

Google
Aragaer
22.08.2018
20:03:55
вроде это начиная с 3.5 работает, в 3.4 нет

так - можно

Ivan
22.08.2018
20:04:22
аа, без dict вообще?

Aragaer
22.08.2018
20:04:42
именно

Алексей
22.08.2018
20:04:46
А занимался кто-нибудь собирательством данных с сайтов? В частности вызывает трудности взаимодействие с динамическими и тормозными сайтами, использую селениум. Как на самом деле нужно такое делать?

Ivan
22.08.2018
20:05:00
круть. Ещё раз спасибо

Aragaer
22.08.2018
20:05:25
{**d1, **d2} точно не будет работать в 3.4. Нарвался на это на этой неделе

Denis
22.08.2018
20:05:39
Правильно использовать апи или не пиздить данные вообще

Aragaer
22.08.2018
20:06:31
вот

Алексей
22.08.2018
20:08:57
Правильно использовать апи или не пиздить данные вообще
Эка ты простой, во первых было бы апи, я бы селениумом не наслаждался, во вторых данные не пиздятся т.к. это открытые данные, просто собирать руками это както дурацки

Artuchka
22.08.2018
20:09:38
парни почему scrollbar не робит, хотя бы по вертикали https://pastebin.com/DwukErKP

Vladimir
22.08.2018
20:21:56
Всем привет

Есть пакет чтоб xls в csv переводило?

Fenicu ☁️♒️
22.08.2018
20:22:23
neprivet.ru

Vladimir
22.08.2018
20:22:33
А то ручками писать дико влом

BLVCK
22.08.2018
20:24:52
Пару недель назад начал учить питон, поэтому заранее извиняюсь за возможно глупый вопрос. Написал парсер для биржи binance используя 3 разных ссылки из api-документации. Вытягиваю из них нужные данные, функция calculate() вызывает 3 функции с этими запросами, далее производит необходимые мне расчёты и отсылает полученные результаты тг-боту. Сама функция заключена в бесконечный цикл с перехватчиком ошибок: while True: try: calculate() time.sleep(0.4) except Exception as e: print('WTF?!: ', e) time.sleep(10) Переодически в логах видел нижеприведённую ошибку: HTTPSConnectionPool(host='www.binance.com', port=443): Max retries exceeded with url: /api/v1/ticker/allBookTickers Бот проработал 3 дня и заглох. В логах проспамлена эта же ошибка... В документации написано, что 8 запросов в секунду является нормой. Исходя из моих расчётов - этот лимит я не превышаю.. Вопрос: если я куплю обновляемую базу прокси и пущу данный скрипт через неё, это решит данную проблему?

Denis
22.08.2018
20:25:00
Vladimir
22.08.2018
20:26:02
Спасибо)

Пару недель назад начал учить питон, поэтому заранее извиняюсь за возможно глупый вопрос. Написал парсер для биржи binance используя 3 разных ссылки из api-документации. Вытягиваю из них нужные данные, функция calculate() вызывает 3 функции с этими запросами, далее производит необходимые мне расчёты и отсылает полученные результаты тг-боту. Сама функция заключена в бесконечный цикл с перехватчиком ошибок: while True: try: calculate() time.sleep(0.4) except Exception as e: print('WTF?!: ', e) time.sleep(10) Переодически в логах видел нижеприведённую ошибку: HTTPSConnectionPool(host='www.binance.com', port=443): Max retries exceeded with url: /api/v1/ticker/allBookTickers Бот проработал 3 дня и заглох. В логах проспамлена эта же ошибка... В документации написано, что 8 запросов в секунду является нормой. Исходя из моих расчётов - этот лимит я не превышаю.. Вопрос: если я куплю обновляемую базу прокси и пущу данный скрипт через неё, это решит данную проблему?
Нет

Если к апи по токену, то нет смысла

Google
Vladimir
22.08.2018
20:27:18
Если апи публичный полностью, то да

BLVCK
22.08.2018
20:27:38
публичный

Vladimir
22.08.2018
20:27:51
Лс

Ща подскажу

Aragaer
22.08.2018
21:18:50
поэтому можно скопировать мой

Denis
22.08.2018
21:27:20
поэтому можно скопировать мой
return min(l), max(l) быстрее, я померил

Vladimir
22.08.2018
21:36:01
Никак не могу найти, pipenv поддерживает pypy?

Aragaer
22.08.2018
22:12:29
простой и быстрый вопрос - как проще всего на птоне сделать валидацию ямла/словаря на предмет того, что там есть нужные поля

Denis
22.08.2018
22:13:09
if set(d) >= {'a', 'b', 'c'}

Aragaer
22.08.2018
22:13:11
попробовал взять pykwalify, но не осилил. То есть схему сделал, но выдирать из его эксепшнов, что именно ему не понравилось, мне чот не хочется уже

ну то есть надо так - в корне должен быть components, если его нет, то ругнуться, что в корне нет components.

внутри components должны быть записи, в каждой должен быть command. Если нет, то ругнуться, указать запись, у которой ее не нашлось

и так далее

понятно, что можно руками все пробежать, но мож есть чот готовое

Denis
22.08.2018
22:14:57
Есть всякие json schema, в простом случае можно и ручками

Igor
22.08.2018
22:15:46
подскажите, есть ли какой-нибудь сервис для тестовых хттп-запросов? Причём хотелось бы посылать пост запросы, с последующим отображением содержимого. То есть, к примеру, простой чатик-флудилка, на котором можно пофлудить сообщениями через скрипт.

httpbin.org подойдёт для этого?

Google
Alex
22.08.2018
22:27:34
Какую библиотеку используете для EBNF парсинга? Видел grako, но удобен и быстр ли он?

Whore Amazing
22.08.2018
22:29:26
Работал только с PLY, там простой BNF. Но правила несложно переделать из EBNF в BNF.

Denis
22.08.2018
22:35:46


?? Eugene
22.08.2018
22:52:08
Cannot be used on its instances more

Короче, попрощайся с getitem ?

Mr
22.08.2018
23:20:06
народ, кто знает как можно спарсить текст с веб страниц подобных вот этой? view-source:https://help.salesforce.com/articleView?id=000003652&type=1 засада в том что собстно отображаемый текст в сорсе страницы отсутствует, судя по всему как-то динамически рендерится откуда-то

Denis
22.08.2018
23:22:31
Admin
ERROR: S client not available

Mr
22.08.2018
23:23:47
так нету текста по ctrl-f, в том-то и дело

там вставки .JS через секцию и всякое такое

Denis
22.08.2018
23:25:13
Какой текст нужен?



Mr
22.08.2018
23:26:35
а, погодь, вот нашел. а почему его нет в view source тогда

Denis
22.08.2018
23:26:50
Потому что это ajax, внезапно

Mr
22.08.2018
23:27:28
ну допустим, я не спец. Я пытался urllib грабнуть собственно эту страницу

естественно хрен там что нашлось

в общем как в питоне аналог такого поиска через консоль элементов хрома сделать?

Denis
22.08.2018
23:28:44
Найти что надо в хроме и понять, как строить запрос в общем случае

Либо использовать всякие костыли вроде selenium

Donaudampf
22.08.2018
23:29:12
так а какой конкретно текст нужен?

Google
Mr
22.08.2018
23:29:35
<td colspan="1" rowspan="1">13.108.238.128 - 13.108.238.143</td>

ну вот например

вообще гореть им в аду за такое в отдельном котле, такую инфу все уважающие себя давно публикуют если не в json то хотя бы в xml или cleartext

Denis
22.08.2018
23:32:54
Там json

Mr
22.08.2018
23:33:57
где?

json это вот, у нормальных людей

https://ip-ranges.amazonaws.com/ip-ranges.json

Denis
22.08.2018
23:34:29
https://pastebin.com/37UcFQNv держи курл

Если они не хотят давать всем подряд информацию в обход сайта, это их право

Mr
22.08.2018
23:37:10
круто. спасибо, а как такое самому построить?)))

Mr
22.08.2018
23:47:07
дошло наконец. спасибо. разобрался и даже чуток подсократил :) единственное что пугает - "release":"214.18.0"

как бы оно не перестало парситься когда версия страницы обновится

Denis
22.08.2018
23:47:45
А ты найди, откуда оно берется, и бери из того же места

Mr
22.08.2018
23:49:37
тройной inception?



Denis
22.08.2018
23:50:02
Все как в жизни

Но это можно делать один раз в начале и куда-нибудь сохранять

Mr
22.08.2018
23:50:45
дык...того и добиваюсь

Страница 6311 из 9768