我正在尝试将Python字典写入json表示法的文件中。这就是我尝试过的方式:
def write_to_json(self, data):
with open('dict.json', 'w') as file:
json.dump(data, file)
但是,我的字典的dump
方法失败。它说:
TypeError: key 23 is not a string
这是(实际上)正确的,应该是Integer
,但是由于数据最初是从csv文件读取并受到操纵的,因此我无法保证,因此我需要对其进行转换。
如何将数字(键和值)中的每个项目转换为字符串?
这是字典示例的样子(基本上是键->列表):
{1: [5,6,8,6], 2: [7,8,9]...}
答案 0 :(得分:1)
这应该可以在python 2中完成您想做的事情
json.dump({str(k): map(str, v) for k, v in data.iteritems()}, file)
和python 3
json.dump({str(k): list(map(str, v)) for k, v in data.items()}, file)
请注意,检查此功能的一种简便方法是使用json.dumps
方法作为测试
In [489]: data = {1: [5,6,8,6], 2: [7,8,9]}
In [490]: json.dumps({str(k): map(str, v) for k, v in data.iteritems()})
Out[490]: '{"1": ["5", "6", "8", "6"], "2": ["7", "8", "9"]}'