我有2个字典:
x= {'Content-Type': 'application/x-www-form-urlencoded'}
y= {'Accept': 'application/json'}
我需要创建最终字典z = {x, y}
我有headers变量,它接受以下值
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
}
有人可以帮助我将以下内容转换为上述格式吗?
headers = {
{'Content-Type': 'application/x-www-form-urlencoded'},
{'Accept': 'application/json'}
}
当前,这给了我以下错误。
TypeError: unhashable type: 'dict'
感谢帮助!
答案 0 :(得分:0)
字典无法在Python中进行哈希处理-列表也不能。我不确定您要问什么,但如果您想将第二个标头变量转换为第一个标头变量,则需要删除嵌套的花括号。第二个变量对Python没有意义,因为您有两个用字典括起来的字典。如果您想要的是该第二个变量中的列表,则外部嵌套方括号必须是列表方括号,即[]。
答案 1 :(得分:0)
因为这不是有效的格式:
headers = {
{'Content-Type': 'application/x-www-form-urlencoded'},
{'Accept': 'application/json'}
}
我想假设您的目标是创建这个:
headers = [
{'Content-Type': 'application/x-www-form-urlencoded'},
{'Accept': 'application/json'}
]
可以这样做:
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
}
new_headers = []
for k in headers:
new_dict = {}
new_dict[k] = headers[k]
new_headers.append(new_dict)
print(new_headers)
(xenial)vash@localhost:~/python/stack_overflow$ python3.7 convert.py [{'Content-Type': 'application/x-www-form-urlencoded'}, {'Accept': 'application/json'}]
答案 2 :(得分:0)
嗯..这就是我解决的方法。
z = dict(list(x.items()) + list(y.items()))
达到预期的结果
{'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json'}