如果我有一个这样的dict。
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'}}
我想对这个dict进行反结构并得到它的值,就像这样:
version, name, value = dict1
而不是这样做:
version = dict1["version"]
name = dict1["name"]
value = value["value"]
当我尝试这样做时,我得到了ValueError: Too many values to unpack(太多值无法解包)
你可以使用 dict.values()
确保顺序是你想要的(Python >=3.6)。
version, name, value = dict1.values()
如果dict1的长度大于receiver的数量,请尝试。
version, name, value, *other = dict1.values()
from operator import itemgetter
params = {'a': 1, 'b': 2}
a, b = itemgetter('a', 'b')(params)
以及使用一个内置的库。
你可以使用 **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