Итак, у меня есть словарь, который является хеш-объектом, который я получаю от Redis, похожий на следующий словарь:
source_data = {
b'key-1': b'{"age":33,"gender":"Male"}',
b'key-2': b'{"age":20,"gender":"Female"}'
}
Моя цель - извлечь все значения из этого словаря и получить их в виде списка словарей Python, например:
final_data = [
{
'age': 33,
'gender': 'Male'
},
{
'age': 20,
'gender': 'Female'
}
]
Я пытался понять список с помощью анализа json:
import json
final_data = [json.loads(a) for a in source_data.values()]
Работает, но для большого набора данных это занимает слишком много времени.
Я переключаюсь на использование этого стороннего json-модуля ujson , который быстрее в соответствии с этим эталоном , но я не заметил каких-либо улучшений.
Я пытался использовать многопоточность:
pool = Pool()
final_data = pool.map(ujson.loads, source_data.values(), chunksize=500)
pool.close()
pool.join()
Я немного поиграл с chunksize
, но результат тот же, но занял слишком много времени.
Было бы очень полезно, если бы кто-то мог предложить другое решение или усовершенствование предыдущих попыток, было бы идеально, если бы я мог избежать использования цикла.