json - Python列表到多级json
问题描述
我是 Python 初学者,我有一个需要转换为 json 格式的列表。我希望能得到一些帮助。
原始数据:</p>
result = [('A', 'a1', '1'),
('A', 'a2', '2'),
('B', 'b1', '1'),
('B', 'b2', '2')]
我想要的结果:</p>
[{'type':'A',
'data':[{'name':'a1','url':'1'},
{'name':'a2','url':'2'}]
},
{'type': 'B',
'data': [{'name':'b1', 'url': '1'},
{'name':'b2','url':'2'}]
}]
解决方案
('A', 'a1', 1)
是一个元组的例子,它是可迭代的。
result = [('A', 'a1', '1'),
('A', 'a2', '2'),
('B', 'b1', '1'),
('B', 'b2', '2')]
type_list = []
for tup in result:
if len(type_list) == 0:
type_list.append({'type': tup[0], 'data': [{ 'name': tup[1], 'url': tup[2] }]})
else:
for type_obj in type_list:
found = False
if type_obj['type'] == tup[0]:
type_obj['data'].append({ 'name': tup[1], 'url': tup[2] })
found = True
break
if not found:
type_list.append({'type': tup[0], 'data': [{ 'name': tup[1], 'url': tup[2] }]})
print(type_list)
打印:
[{'type': 'A', 'data': [{'name': 'a1', 'url': '1'}, {'name': 'a2', 'url': '2'}]}, {'type': 'B', 'data': [{'name': 'b1', 'url': '1'}, {'name': 'b2', 'url': '2'}]}]
推荐阅读
- python - 需要一种更好的方法来查找要在 beautifulsoup 中使用的标签
- javascript - REACT找不到图像模块
- php - 如何仅访问 php 对象索引
- javascript - Microsoft Graph api - 将文件写入我的 oneDrive
- python - 每当我运行需要 aiohttp 库的代码时出错
- amazon-web-services - 如何将 dynamodb 中新添加的数据传输到 s3 存储桶?
- apache - 当我更改源文件时,为什么我的 localhost 不再更新?
- vba - 循环查找文件夹中具有特定名称的最后修改文件
- python-3.x - TypeError: '<=' 在 'str' 和 'int' 的实例之间不支持,尽管我将 str 转换为 int
- model - 如何在 libgdx 中首先缩放然后旋转模型实例