如果我有这样的字典:
dict1 = {'version': 0, 'name': 'JSESSIONID', 'value': 'AFCF8A9D8AB9E7B701A4D60EE7D8C475.prdaccountc-108', 'port': None, 'port_specified': False, 'domain': 'signin.ea.com', 'domain_specified': False, 'domain_initial_dot': False, 'path': '/p', 'path_specified': True, 'secure': True, 'expires': None, 'discard': True, 'comment': None, 'comment_url': None, 'rfc2109': False, '_rest': {'HttpOnly': None, 'SameSite': 'None'}}
我想解构该字典并得到这样的值:
version, name, value = dict1
而不是这样做:
version = dict1["version"]
name = dict1["name"]
value = value["value"]
当我尝试这样做时,我得到值错误:太多值要解压缩
from operator import itemgetter
params = {'a': 1, 'b': 2}
a, b = itemgetter('a', 'b')(params)
以及使用内置库。
你可以使用dict.values()
,确保顺序是你想要的(Python>= 3.6(:
version, name, value = dict1.values()
如果dict1的长度大于接收方的数量,则尝试:
version, name, value, *other = dict1.values()
您可以使用函数中的**kwargs
来破坏字典:
def destructor(**kwargs):
# You can access any of your dict keys directly
# For example:
print(port, value)
destructor(dict1) # output: AFCF8A9D8AB9E7B701A4D60EE7D8C475.prdaccountc-108 None