import lxml.html
from urllib.parse import urlencode
form = '''<form action="" method="get">
<input type="hidden" name="sr_angle" value="0"><input type="hidden" name="sr_back" value="clanRace">
<input type="hidden" name="sr_car_id" value="1009752498"><input type="hidden" name="sr_cid" value="585502"><input type="hidden" name="sr_color" value="0"><input type="hidden" name="sr_counter" value="0"><input type="hidden" name="sr_cur_time" value="1590859609"><input type="hidden" name="sr_dx" value="0"><input type="hidden" name="sr_dy" value="-30"><input type="hidden" name="sr_dz" value="1"><input type="hidden" name="sr_fid" value="449701"><input type="hidden" name="sr_filename" value="cartemp/paint_1009847110_1590857777.png"><input type="hidden" name="sr_item_id" value="194"><input type="hidden" name="sr_method" value="clanRace"><input type="hidden" name="sr_noshop" value="0"><input type="hidden" name="sr_return_method" value="map"><input type="hidden" name="sr_scale" value="100"><input type="hidden" name="sr_session_ttl" value="1590860958"><input type="hidden" name="sr_tab" value="aero"><input type="hidden" name="sr_time" value="40"><input type="hidden" name="sr_trycount" value="1070"><input type="hidden" name="sr_ttl" value="308728"><input type="hidden" name="sr_type" value="c"><input type="hidden" name="app_id" value="598747"><input type="hidden" name="authentication_key" value="5b45d57407776dc8eb4eac04f1678b8b"><input type="hidden" name="ext_perm" value="notifications,emails,payments"><input type="hidden" name="is_app_user" value="1"><input type="hidden" name="mobile_spec" value="smartphone"><input type="hidden" name="oid" value="6315664031247459922"><input type="hidden" name="referer_type" value="wo_ref"><input type="hidden" name="session_expire" value="1590940652"><input type="hidden" name="session_key" value="7792507ad9cc27456b9e3a42c3838b2a"><input type="hidden" name="sig" value="500e5f41125b1116ff3a103e2865a3d3"><input type="hidden" name="vid" value="6315664031247459922"><input type="hidden" name="view" value="app_mobile"><input type="hidden" name="window_id" value="CometName_2f24b508c59c828a58e1ea8da53f8685"><input type="hidden" name="sr_sig" value="9f0be65f9207dcf0a23a60d33f8038f5">
<button type="submit" class="b-button b-bn-nr-41-btn" id="" onclick="return blockSubmit();">Гонка</button>
</form>'''
root = lxml.html.fromstring(form)
data = {}
for el in root.xpath('.//input'):
data[el.get('name')] = el.get('value')
qstr = urlencode(data)
print(f'site.ru/index.php?{qstr}')
site.ru/index.php?sr_angle=0&sr_back=clanRace&sr_car_id=1009752498&sr_cid=585502&sr_color=0&sr_counter=0&sr_cur_time=1590859609&sr_dx=0&sr_dy=-30&sr_dz=1&sr_fid=449701&sr_filename=cartemp%2Fpaint_1009847110_1590857777.png&sr_item_id=194&sr_method=clanRace&sr_noshop=0&sr_return_method=map&sr_scale=100&sr_session_ttl=1590860958&sr_tab=aero&sr_time=40&sr_trycount=1070&sr_ttl=308728&sr_type=c&app_id=598747&authentication_key=5b45d57407776dc8eb4eac04f1678b8b&ext_perm=notifications%2Cemails%2Cpayments&is_app_user=1&mobile_spec=smartphone&oid=6315664031247459922&referer_type=wo_ref&session_expire=1590940652&session_key=7792507ad9cc27456b9e3a42c3838b2a&sig=500e5f41125b1116ff3a103e2865a3d3&vid=6315664031247459922&view=app_mobile&window_id=CometName_2f24b508c59c828a58e1ea8da53f8685&sr_sig=9f0be65f9207dcf0a23a60d33f8038f5
>>> import base64
>>> base64.b64decode('MmticHMlMjkubXAz1aHR9UaGUlMjBMaW0cHM4MC9maWxlcy9uLnByby9LnNlZm2jZG4Ly9wcmV6LzE50iYSUyMCUyNiUyMEFuZHJvJTIwLSUyMFguTyUyMCU')
b'2kbps%29.mp3\xd5\xa1\xd1\xf5F\x86RS#\x04\xc6\x96\xd1\xc1\xcc\xe0\xc0\xbd\x99\xa5\xb1\x95\xcc\xbd\xb8\xb9\xc1\xc9\xbc\xbd.sefm\xa3dn\x0b\xcb\xdc\x1c\x99^\x8b\xccNt\x89\x84\x94\xc8\xc0\x94\xc8\xd8\x94\xc8\xc1\x05\xb9\x91\xc9\xbc\x94\xc8\xc0\xb4\x94\xc8\xc1`\xb9<\x94\xc8\xc0\x94'
Я уже облазил весь гугл и так не нашёл решение этой проблемы.
Почему
Как обойти это ?
is_adv_digit = lambda x: x.isdigit() if x[:1]!='-' else x[1:].isdigit()
>>> is_adv_digit('erwer')
False
>>> is_adv_digit('erwe5345r')
False
>>> is_adv_digit('345345')
True
>>> is_adv_digit('-345345')
True
>>> is_adv_digit('-')
False
>>> is_adv_digit('-1')
True
>>> is_adv_digit('1-')
False
>>> sum([x[0] for x in arrays])
34.33750876274861
>>> sum([x[1] for x in arrays])
19.305019168249604
>>> sum([x[2] for x in arrays])
32.17848566247153
>>> sum([x[3] for x in arrays])
22.424106744929986
...
import json
data = '''
[-0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 15.626869483055735, 0.0]
[0.0, 19.305019168249604, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 22.424106744929986, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 24.802126691039216, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 25.41793956879349]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 32.17848566247153, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[34.33750876274861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 38.54533200463435, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 40.605066388577725, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
'''
arrays = [json.loads(x) for x in data.split('\n') if x]
let arr = [
{city: 'Москва', address: 'адрес 1'},
{city: 'Москва', address: 'адрес 2'},
{city: 'Петербург', address: 'адрес 3'},
{city: 'Москва', address: 'адрес 4'},
]
[...new Set(arr.map(item => item.city))].map(function(item) {
return {city: item, address: arr.filter(itm => itm.city == item).map(itm => itm.address)}
})
def slugify(value, allow_unicode=False):
"""
Convert to ASCII if 'allow_unicode' is False. Convert spaces to hyphens.
Remove characters that aren't alphanumerics, underscores, or hyphens.
Convert to lowercase. Also strip leading and trailing whitespace.
"""
In [1]: unicodedata.normalize('NFKD', 'привет world')
Out[1]: 'привет world'
In [2]: 'привет world'.encode('ascii', 'ignore').decode('ascii')
Out[2]: ' world'
In [3]: my_string = 'привет world'.translate(
str.maketrans(
"абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ",
"abvgdeejzijklmnoprstufhzcss_y_euaABVGDEEJZIJKLMNOPRSTUFHZCSS_
...: Y_EUA"
))
In [4]: slugify(my_string)
Out[4]: 'privet-world'
import re
data = ['erwer', 'dd', '44j', '5.09', '33', 'dfgdfs', '99.100', '5645..99', '.434', '42342.']
[x for x in data if re.match('^\d+(\.\d){0,1}\d*$', x)]
['5.09', '33', '99.100']
def is_float(value):
try:
float(value)
except ValueError:
return False
return True
>>> is_float('65456')
True
>>> is_float('65456.00')
True
>>> is_float('65456.00gfghf')
False