gpt4 book ai didi

python - 在每次迭代中更新字典内的列表

转载 作者:行者123 更新时间:2023-12-02 18:41:06 41 4
gpt4 key购买 nike

从我在 mongo 中的数据库查询,我得到 <class 'pymongo.cursor.Cursor'>对象可以说 query_result其中数据是字典的集合,例如

{
id:'1',
locations:
[
{lat:1.36, long:-21.99},
{lat:13.08, long:12.13},
{lat:33.08, long: 12.13}
]
}
{
id:'2',
locations:
[
{lat:1.42, long:-21.31},
{lat:2.36, long:11.12}
]
}

lat long 字典可以是从 1 到多个。

我需要将上面的字典转换为列表字典

res = {
id: ['1','1','1','2','2'],
lat: [1.36, 13.08, 33.08, 1.42, 2.36],
long: [-21.99, 12.13, 12.13, -21.31, 11.12]
}

我尝试使用以下代码:

res= dict(id=[], lat=[],long=[])
for result in query_result:`
for location in result['locations']:
res.update(id=res['id'] + result['id'],
lat=res['lat'] + location['lat'],
long=res['long'] + location['long'],
)

只有 ID 字段是字符串,而纬度和经度是 Double。

我收到的错误是:TypeError: can only concatenate list (not "str") to list在第 4 行。

最佳答案

IIUC,你可以试试->json_normalize :

data = [{
'id': '1',
'locations':
[
{'lat': 1.36, 'long': -21.99},
{'lat': 13.08, 'long': 12.13},
{'lat': 33.08, 'long': 12.13}
]
},
{
'id': '2',
'locations':
[
{'lat': 1.42, 'long': -21.31},
{'lat': 2.36, 'long': 11.12}
]
}]

result = pd.json_normalize(
data, record_path='locations', meta='id').to_dict('list')

输出:

{'lat': [1.36, 13.08, 33.08, 1.42, 2.36],
'long': [-21.99, 12.13, 12.13, -21.31, 11.12],
'id': ['1', '1', '1', '2', '2']}

关于python - 在每次迭代中更新字典内的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67998938/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com