data = .. ваша структура ...
try:
product_image = next(filter(lambda x: 'ProductImage' in x.keys(), data))
except StopIteration:
product_image = None
if product_image:
# работаем дальше с product_image
product_image = list(filter(lambda x: 'ProductImage' in x.keys(), data))
Есть небольшая подсказка, сделать это с помощу eval().
import io
import requests
from lxml import etree
for url in links:
info = requests.get(url)
tree = etree.parse(io.StringIO(info.text), etree.HTMLParser())
rarity = tree.xpath('.//*[@id="largeiteminfo_item_type"]')[0].text
print(rarity, url)
не знаю на сколько это законно, ну опустим это, не суть
import ast
data = {
'Action': [...],
...
}
sorted(map(ast.literal_eval, data['Action']), key=lambda x:(x[1], x[0]), reverse=True)
# [('Terminator Genisys', '2015'),
# ('Terminator Salvation', '2009'),
# ('Terminator 3: Rise of the Machines', '2003'),
# ('Terminal Velocity', '1994'),
# ('Terminator 2: Judgment Day', '1991'),
# ('Terminator, The', '1984')]
у меня каждый раз ломается json
import json
data = '''{
"id": {
"login": "login",
"password": "password"
}
}'''
json_data = json.loads(data)
json_data['1'] = {'login': 'log', 'password': 'pass'}
print(json.dumps(json_data, indent=4))
# {
# "id": {
# "login": "login",
# "password": "password"
# },
# "1": {
# "login": "log",
# "password": "pass"
# }
# }
from fuzzywuzzy import fuzz
files = ['новая папка', 'games', 'install', 'фото', 'музыка']
search = ['папка', 'фотки', 'музло']
result = []
for im in search:
for fil in files:
if fuzz.partial_ratio(im, fil) > 50:
result.append(fil)
print(result)
# ['новая папка', 'фото', 'музыка']
langs = ['en-us', 'en-mc', 'en-gb', 'en-im', 'en-je', 'en-vg', 'en-ie', 'en-lu', 'sv-se', 'en-by', 'en-md', 'en-al', 'en-xk', 'en-me', 'fr-fr', 'fr-bl', 'fr-ch', 'es-es', 'it-it', 'it-sm', 'pt-pt', 'de-de', 'de-at', 'de-li', 'de-ch', 'nl-nl', 'nl-be', 'en-no', 'en-sj', 'en-fi', 'en-ax', 'en-dk', 'en-gl', 'en-is', 'ru-ru', 'pl-pl', 'bg-bg', 'cs-cz', 'el-gr', 'hu-hu', 'lt-lt', 'ro-ro', 'sk-sk', 'uk-ua', 'en-lv', 'en-rs', 'en-si', 'en-ba', 'en-cy', 'en-ee', 'en-hr', 'en-mk', 'en-mt', 'en-ph', 'en-mm', 'en-kh', 'en-mn', 'en-kz', 'en-la', 'en-za', 'en-ck', 'fr-ca', 'en-au', 'en-nz', 'es-ar', 'es-gt', 'es-do', 'es-hn', 'es-ni', 'es-pa', 'es-ec', 'es-py', 'es-ve', 'en-ae', 'en-lb', 'en-il', 'en-pk', 'id-id', 'tr-tr', 'ko-kr', 'th-th', 'en-ca', 'es-co', 'en-sg', 'zh-hk', 'zh-cn', 'en-in', 'en-bd', 'en-lk', 'en-np', 'en-mv', 'pt-br', 'es-pe', 'en-hk', 'ar', 'es-mx', 'ja-jp', 'en-my', 'vi-vn', 'zh-tw', 'en-se']
out_langs = []
for lang in langs:
if not lang.split('-')[0] in [x.split('-')[0] for x in out_langs]:
out_langs.append(lang)
print(out_langs)
# ['en-us', 'sv-se', 'fr-fr', 'es-es', 'it-it', 'pt-pt', 'de-de', 'nl-nl', 'ru-ru', 'pl-pl', 'bg-bg', 'cs-cz', 'el-gr', 'hu-hu', 'lt-lt', 'ro-ro', 'sk-sk', 'uk-ua', 'id-id', 'tr-tr', 'ko-kr', 'th-th', 'zh-hk', 'ar', 'ja-jp', 'vi-vn']
langs = ...
out_langs = []
current_lang = None
for lang in sorted(langs):
if current_lang != lang.split('-')[0]:
out_langs.append(lang)
current_lang = lang.split('-')[0]
print(out_langs)
# ['ar', 'bg-bg', 'cs-cz', 'de-at', 'el-gr', 'en-ae', 'es-ar', 'fr-bl', 'hu-hu', 'id-id', 'it-it', 'ja-jp', 'ko-kr', 'lt-lt', 'nl-be', 'pl-pl', 'pt-br', 'ro-ro', 'ru-ru', 'sk-sk', 'sv-se', 'th-th', 'tr-tr', 'uk-ua', 'vi-vn', 'zh-cn']