Python 对于Json,Dict类型是不可散列的,还可以尝试设置
我正在为我的学校做一个项目。我正在尝试将dict转换为json,以便将其作为json请求发布 下面是我试图以json的形式获取的示例dictPython 对于Json,Dict类型是不可散列的,还可以尝试设置,python,json,Python,Json,我正在为我的学校做一个项目。我正在尝试将dict转换为json,以便将其作为json请求发布 下面是我试图以json的形式获取的示例dict dict = { {'subject': 'testing123', 'start': { 'dateTime': "2020-06-13T21:30:02.096Z", "timezone": "UTC"},
dict = {
{'subject': 'testing123',
'start': {
'dateTime': "2020-06-13T21:30:02.096Z",
"timezone": "UTC"},
'end': {
'dateTime': "2020-06-20T21:30:02.096Z",
'timezone': 'UTC'}
}
}
我首先尝试将其加载到json中,但由于错误“timezone”而失败:“UTC”不可序列化
所以我检查了google,然后尝试将它转储到json中,并将其作为变量加载到json中。i、 e
dict_json = json.dumps(dict)
dict_json = json.loads(dict)
print(dict_json)
但还是出现了散列错误
然后我再次尝试在谷歌上搜索,发现如果我有多个字典,我必须将它们转换为tuple,但这一个不确定,尽管这是一个正确的发现
dict = {
tuple({'subject': 'testing123',
'start': tuple({
'dateTime': "2020-06-13T21:30:02.096Z",
"timezone": "UTC"}),
'end': tuple({
'dateTime': "2020-06-20T21:30:02.096Z",
'timezone': 'UTC'})
})
}
然后它变成了一个集合,集合现在也不是Json可序列化的,没有选项了。需要对此问题提出建议,以便将此dict转换为有效的json格式。删除单词tuple及其附带的括号。接下来,dict中的每个条目都必须有一个键和一个值。你的dict的第一级没有这样的一对。以下是我认为您的预期目标:
dict = {
'subject': 'testing123',
'start': {
'dateTime': "2020-06-13T21:30:02.096Z",
'timezone': 'UTC'},
'end': {
'dateTime': "2020-06-20T21:30:02.096Z",
'timezone': 'UTC'}
}
以下是在此对象上执行测试用例的结果:
>>> dict = {
... 'subject': 'testing123',
... 'start': {
... 'dateTime': "2020-06-13T21:30:02.096Z",
... 'timezone': 'UTC'},
... 'end': {
... 'dateTime': "2020-06-20T21:30:02.096Z",
... 'timezone': 'UTC'}
... }
>>> json_dict = json.dumps(dict)
>>> dict_from_json = json.loads(json_dict)
>>> dict_from_json
{'subject': 'testing123', 'start': {'dateTime': '2020-06-13T21:30:02.096Z', 'timezone': 'UTC'}, 'end': {'dateTime': '2020-06-20T21:30:02.096Z', 'timezone': 'UTC'}}
>>> dict_from_json['subject']
'testing123'
您的问题是,字典键必须是可散列的,并且您有一个字典键,它是另一个字典,因此不是可散列的。还有,tuple{是无效的语法。我也用一个列表尝试了它,然后尝试了使用function.toJson,但那也是'dict_json=dict.toJson printtypedict_json',但它也给出了一个错误,不可修改的'dict'@user2357112supportsMonica对不起,先生,这是一个拼写错误修复了dict,当我尝试将它用作json时,它抛出一个无法序列化的异常。@Chris_Rands any顺便问一下,先生,您可以建议将嵌套字典散列成json吗?对不起,先生,原来的dict元组是一个输入错误,当您尝试将此dict解析为json时,它失败了。它不可序列化。我更新了答案,以显示来自我的控制台@SidKaushik的序列化结果。简而言之,您有一组额外的大括号。明白了,谢谢非常感谢。愚蠢的错误我以为我们应该这样创建嵌套的dict。