我想将元组列表转换为json,但我的代码出了问题,因为我没有得到我期望的结果。
我已经问过这个问题,但是输入更简单,我无法使用它。
输入列表
<body>
<div id="preloader">
<div id="status">
<h4>Loading...</h4> <!-- include your loading img here -->
</div>
</div>
<h3>This is a body text</h3>
</body>
这是代码:我遍历列表result = [('a', 'company', '2', 2, 'myError'),
('c', 'company', '5', 7, 'myError'),
('b', 'tax', '23', 1, 'myError')]
并解开其中的元组并连接元组result
。
e
实际结果
e = ()
for element in result:
e = e + ((element[1],
(('uuid', str(element[0])),
('id', element[2]),
('error_id', element[3]),
('error_msg', element[4]))),)
logging.info(json.dumps(dict(e)))
预期结果
{
"company": [
["id", "a"],
["row", "2"],
["err", 2],
["msg", "myError"]
],
"tax": [
["id", "b"],
["row", "23"],
["err", 1],
["msg", "myError"]
]
}
如何获得正确的json?
答案 0 :(得分:3)
from collections import defaultdict
e = defaultdict(list)
for element in result:
e[element[1]].append({'uuid': str(element[0]), 'id': element[2],
'error_id': element[3], 'error_msg': element[4]})
dict(e)
会以所需的格式为您提供字典。