我一直在寻找答案,但是没有一个答案特别有用。我有一个必须转换成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)我得到:
^{pr2}$我创建了一个测试变量“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文件(什么)回报:
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
错误消息正确;根据the JSON standard,JSON对象中的键必须是字符串:
因此,要么选择JSON之外的其他格式,要么让键成为字符串。在您的例子中,您希望将
^{pr2}$numpy.int64
变量转换为字符串;请尝试以下操作:事实上,Json需要一个字符串作为键。它们的键必须是整数吗?当您将json反序列化为manage类型转换时,只需考虑到这一点。在
反序列化时: int(key)得到整数。我认为是可能的。在
相关问题 更多 >
编程相关推荐