Size: a a a

2020 May 17

YV

Yuliya Volkova in SPb Python
Alexander Savelyev
Что бы было понятнее, пока что реализовано вот так :
а try там везде зачем?
источник

AS

Alexander Savelyev in SPb Python
иногда приходят битые данные ...
источник

YV

Yuliya Volkova in SPb Python
Alexander Savelyev
иногда приходят битые данные ...
такие что там не дикт?
источник

AS

Alexander Savelyev in SPb Python
ага (((
источник

AS

Alexander Savelyev in SPb Python
None
источник

YV

Yuliya Volkova in SPb Python
не проще ли сделать if ?
источник

YV

Yuliya Volkova in SPb Python
а не try except?
источник

AS

Alexander Savelyev in SPb Python
а он быстрее трая?
источник

YV

Yuliya Volkova in SPb Python
ну конечно, ты просто делаешь проверку условия и дальше ничего не выполняется
источник

YV

Yuliya Volkova in SPb Python
а тут ты пытаешься что-то выполнить и потом обрабатываешь получившуюся ошибку
источник

AS

Alexander Savelyev in SPb Python
хммм ща потестим ...
источник

AS

Alexander Savelyev in SPb Python
ну как ща ... один прогон занимает 5 минут xD
источник

YV

Yuliya Volkova in SPb Python
Alexander Savelyev
хммм ща потестим ...
если брать мой код достаточно так сделать
from collections import defaultdict
new_dict = defaultdict(lambda: defaultdict(list))
list_of_dicts = [_dict for _dict in list_of_dicts if isinstance(_dict, dict)]

for _dict in list_of_dicts:
   for key, value in _dict.items():
       if isinstance(value, dict):
           for inner_key, inner_value in value.items():
               new_dict[key][inner_key].append(inner_value)
источник

YV

Yuliya Volkova in SPb Python
сразу сначала отфильтровываешь None и другую ересь, потом 1 if на value и всё
источник

AS

Alexander Savelyev in SPb Python
[
{'Bid': 1100000, 'Price': 1100000},
{'Bid': 11800000, 'Price': 6300000}....
]

это чисто значения из ключей уровнем выше... а сами ключи верхнего уровня потерялись.
Должно то быть вот так
[
{item_name:  {'Bid': 1100000, 'Price': 1100000}},
{item_name: {'Bid': 11800000, 'Price': 6300000}}....
]
источник

YV

Yuliya Volkova in SPb Python
Alexander Savelyev
[
{'Bid': 1100000, 'Price': 1100000},
{'Bid': 11800000, 'Price': 6300000}....
]

это чисто значения из ключей уровнем выше... а сами ключи верхнего уровня потерялись.
Должно то быть вот так
[
{item_name:  {'Bid': 1100000, 'Price': 1100000}},
{item_name: {'Bid': 11800000, 'Price': 6300000}}....
]
а покажи как ты код вставил, потому что у меня не такой результат, а с ключами
источник

YV

Yuliya Volkova in SPb Python
Alexander Savelyev
[
{'Bid': 1100000, 'Price': 1100000},
{'Bid': 11800000, 'Price': 6300000}....
]

это чисто значения из ключей уровнем выше... а сами ключи верхнего уровня потерялись.
Должно то быть вот так
[
{item_name:  {'Bid': 1100000, 'Price': 1100000}},
{item_name: {'Bid': 11800000, 'Price': 6300000}}....
]
в моем примере листа в принципе не может быть, потому что new_dict - это дикт, а у тебя лист
источник

AS

Alexander Savelyev in SPb Python
for bid in bids:

       new_dict = defaultdict(lambda: defaultdict(list))
       list_of_dicts = [_dict for _dict in bid["Search"]["AuctionBids"]["AuctionBidItems"] if isinstance(_dict, dict)]

       for _dict in list_of_dicts:
           for key, value in _dict.items():
               if isinstance(value, dict):
                   for inner_key, inner_value in value.items():
                       new_dict[key][inner_key].append(inner_value)

       print(new_dict)
источник

AS

Alexander Savelyev in SPb Python
не то
источник

AS

Alexander Savelyev in SPb Python
источник