在Python

时间:2018-02-17 14:48:11

标签: python json dictionary tuples dump

我在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}"

1 个答案:

答案 0 :(得分:2)

json中的

键必须是字符串。试试这个:

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))