Форум сайта python.su
0
[{
'key': 'key3',
'value': '1',
'type': 'long'
}, {
'key': 'key2',
'value': '2',
'type': 'long'
}, {
'key': 'key3',
'value': 'true',
'type': 'boolean'
}
]Офлайн
253
Обычно люди за один проход делают временный словарь чтобы потом многократно по ключу значение вытаскивать.
p.s.
Ваш json делал кто-то очень странный. Json позволяет напрямую хранить int,bool и т.п. Идеи хранить значение в строке и записывать отдельно тип, и хранить список вместо словаря, если ключи уникальны могут прийти в голову только тому у кого мозг сильно травмирован долгим использованием xml :)).
Офлайн
857
DanyМожешь построить индекс и искать в индексе. Индекс может быть в форме словаря, где ключи - это ключи, а значения - это списки с позициями в основном списке словарей.
Есть примерно такой словарь, преобразованный из JSON - мне нужна быстрый способ находить значения value по key.
index = { 'key1': [0, 3, 5], 'key2': [4, 7] }
>>> index = { ... 'key1': [0, 3, 5], ... 'key2': [4, 7] ... } >>> >>> data = [ ... {'key': 'key1', ... 'value': 'val11', ... 'type': 'type11'}, ... {'key': 'keyX', ... 'value': 'val1', ... 'type': 'type1'}, ... {'key': 'keyX', ... 'value': 'val1', ... 'type': 'type1'}, ... {'key': 'key1', ... 'value': 'val12', ... 'type': 'type12'}, ... {'key': 'key2', ... 'value': 'val21', ... 'type': 'type21'}, ... {'key': 'key1', ... 'value': 'val13', ... 'type': 'type13'}, ... {'key': 'keyX', ... 'value': 'val1', ... 'type': 'type1'}, ... {'key': 'key2', ... 'value': 'val22', ... 'type': 'type22'}, ... {'key': 'keyX', ... 'value': 'val1', ... 'type': 'type1'}, ... ] >>> >>> out = [] >>> for k in index: ... out.append([data[i] for i in index[k]]) ... >>> out [[{'key': 'key1', 'value': 'val11', 'type': 'type11'}, {'key': 'key1', 'value': 'val12', 'type': 'type12'}, {'key': 'key1', 'value': 'val13', 'type': 'type13'}], [{'key': 'key2', 'value': 'val21', 'type': 'type21'}, {'key': 'key2', 'value': 'val22', 'type': 'type22'}]] >>>
Отредактировано py.user.next (Май 3, 2021 00:05:36)
Офлайн
0
doza_and
Обычно люди за один проход делают временный словарь чтобы потом многократно по ключу значение вытаскивать.p.s.Ваш json делал кто-то очень странный. Json позволяет напрямую хранить int,bool и т.п. Идеи хранить значение в строке и записывать отдельно тип, и хранить список вместо словаря, если ключи уникальны могут прийти в голову только тому у кого мозг сильно травмирован долгим использованием xml).
Отредактировано Dany (Май 3, 2021 01:09:02)
Офлайн
253
DanyНа лог это не похоже потому что такие данные должны писаться целиком. А логи обычно дописываются кусочками без возврата записи в более ранние позиции файла. json,xml не предусматривает потокового формата записи в отличии от yaml формата в котором это есть.
JSON - тут больше как лог
Офлайн