将字典嵌套到Python中的单个字典

时间:2018-09-17 15:48:21

标签: python python-3.x dictionary

我正在编辑

我有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'

感谢帮助!

3 个答案:

答案 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'}