我在Python中有一个字典,它将元组映射到一个数字,如下所示。
目标是以漂亮的json格式打印我的数据,但是我收到错误
import json
data = {
(7, 0, 4, 1, 0, 0, 3): 2,
(7, 0, 3, 1, 0, 0, 3): 1,
(2, 0, 0, 1, 0, 0, 1): 3,
(7, 0, 2, 1, 0, 0, 3): 4,
(7, 0, 4, 1, 0, 0, 2): 1,
(0, 0, 0, 0, 0, 0, 0): 2,
}
print (json.dumps(data))
我收到错误
return _iterencode(o, 0)
TypeError: keys must be a string
显然它与元组有关。
将数据转换为字符串不起作用,它只返回单行结果。
"{(7, 0, 4, 1, 0, 0, 3): 2, (7, 0, 3, 1, 0, 0, 3): 1, (2, 0, 0, 1, 0, 0, 1): 3, (7, 0, 2, 1, 0, 0, 3): 4, (7, 0, 4, 1, 0, 0, 2): 1, (0, 0, 0, 0, 0, 0, 0): 2}"
答案 0 :(得分:2)
键必须是字符串。试试这个:
print (json.dumps(({str(k):v for k,v in data.items()})))
您还可以使用缩进使其更漂亮:
print (json.dumps(({str(k):v for k,v in data.items()}),indent=2))