我一直在寻找关于 SO 的答案,但是没有答案特别有用。我有一个必须转换为 JSON 字符串的值字典。数据如下所示:
In [127]: ddd
Out[127]:
{'ID': {'condition': '',
'data': {1: '2',
2: '3',
3: '4',
4: '5',
5: '6',
6: '7',
7: '8',
8: '9',
9: '10'},
'desc_long': 'Id szko\xc5\x82y',
'desc_short': 'Id szko\xc5\x82y',
'df_name': 'pierszytest',
}}
当我尝试执行 json.dumps(ddd) 我得到:
TypeError: keys must be a string
我创建了一个测试变量“what”
In [126]: what
Out[126]: {1: '2', 2: '3', 3: '4', 4: '5', 5: '6', 6: '7', 7: '8', 8: '9', 9: '10'}
json.dumps(what) 返回:
Out[129]: '{"1": "2", "2": "3", "3": "4", "4": "5", "5": "6", "6": "7", "7": "8", "8": "9", "9": "10"}'
同样,我尝试只转换 ddd['ID']['data']:
In [131]: ddd['ID']['data']
Out[131]: {1: '2', 2: '3', 3: '4', 4: '5', 5: '6', 6: '7', 7: '8', 8: '9', 9: '10'}
In [130]: json.dumps(ddd['ID']['data'])
TypeError: keys must be a string
因此,这基本上是相同的变量,但 json.dumps 仍然无法处理后者。这对我来说是一个很大的惊喜。我做了一些研究,但它对我的情况没有任何用处。如果是重复的,请告诉我。
* 编辑 * 我在两个变量上附加 type() 的结果:
In [132]: type(ddd['ID']['data'])
Out[132]: dict
In [133]: type(what)
Out[133]: dict