from random import randint
from textwrap import wrap
json_users = {randint(10000000, 9999999999): {
"Warn": randint(1, 10), "Moderator": randint(10000000, 9999999999), "Reason": "1.3"}
for _ in range(100)
}
warns = ''
for user, data in json_users.items():
moder, reason = data['Moderator'], data['Reason']
warns += f'**Пользователь: {user}** \n**Модератор: {moder}** \n**Причина: {reason}**.\t'
for chunk in wrap(warns, 400):
print(chunk, '##new_line')
import re
s = "выставляет на аукцион (214422): 1*Кожаная туника - 900 золота , " \
"нужно вычленить именно число в скобках, у каждого такого сообщения они каждый раз разные."
lot_re = re.compile(r'\((?P<lot_id>\d+)\)')
result = lot_re.search(s).groupdict()
print(result)
{'lot_id': '214422'}
t = {
'type': 'message_new',
'object': {
'message': {
'date': 1587065982,
'from_id': 396298943,
'id': 845, 'out': 0,
'peer_id': 396298943,
'text': '',
'conversation_message_id': 329,
'fwd_messages':
[{'date': 1587065973, 'from_id': 396298943, 'text': '',
'attachments': [], 'fwd_messages':
[{'date': 1587065635, 'from_id': 574078662,
'text': 'Мда..Вк на приложении сдохло', 'attachments': [],
'conversation_message_id': 1887}],
'conversation_message_id': 328, 'peer_id': 396298943, 'id': 844}],
'important': False, 'random_id': 0, 'attachments': [], 'is_hidden': False},
'client_info': {
'button_actions': ['text', 'vkpay', 'open_app', 'location', 'open_link'],
'keyboard': True, 'inline_keyboard': True, 'lang_id': 0}},
'group_id': 194081345, 'event_id': '919d7461a9d3217cb9f1b9eb50c7b5299571140d'}
# Можно просто
print(t['object']['message']['fwd_messages'])
# Можно не ловя ошибок
print(t.get('object', {}).get('message', {}).get('fwd_messages'))
# Можно обернуть в функцию и скармливать строку
def get_key(obj: dict, path):
for k in path.split('.'):
obj = obj.get(k, {})
return obj
print(get_key(t, 'object.message.fwd_messages'))
curl -X GET "https://api.coingecko.com/api/v3/coins/list" -H "accept: application/json" | json_pp >> cash_list
cat cash_list | grep -E "id.+bitcoin.+cash"
"id" : "10x-long-bitcoin-cash-token",
"id" : "10x-short-bitcoin-cash-token",
"id" : "1x-short-bitcoin-cash-token",
"id" : "3x-long-bitcoin-cash-token",
"id" : "3x-short-bitcoin-cash-token",
"id" : "bitcoin-cash",
"id" : "bitcoin-cash-sv",
"id" : "bitcoin-free-cash",
"id" : "ebitcoin-cash",