Python-如何用键、值对来解包键



任何人都可以帮助并解释如何从具有多个键、值对的键中解包项目?

{'jsonrpc': '2.0', 'result': [{'userid': '8', 'clock': '1644715846', 'action': '3', 'resourceid': '0'}], 'id': '1'}

我需要将"result"转换为字典。

# Print type 'dict'
print(type(result2))
#Print type 'list'
print(type(result2['result']))
output = []

# Here i get error 
for key_value in result2['result']:
key, value = key_value.split(': ', 1)
if not output or key in output[-1]:
output.append({})
output[-1][key] = value
print(output)
"""
key, value = key_value.split(': ', 1)
AttributeError: 'dict' object has no attribute 'split'
"""

提前感谢

很明显,result2['result']是一个列表,但该列表包含您想要的dict。

因此,只需打开这个列表并获取frst元素;

result2['result'][0]

result2['result']是一个dict列表。若要对列表进行迭代,可以执行for result in result2['result']若要对每个生成的dict进行迭代,则可以执行for key, value in result.items()

result2 = {'jsonrpc': '2.0', 'result': [{'userid': '8', 'clock': '1644715846', 'action': '3', 'resourceid': '0'}], 'id': '1'}
output = [{}]
for result in result2['result']:
for key, value in result.items():
if key in output[-1]:
output.append({})
output[-1][key] = value
print(output)
# [{'userid': '8', 'clock': '1644715846', 'action': '3', 'resourceid': '0'}]

这段代码在迭代每个字典并积累一个新字典列表时遇到了很多麻烦,目的显然是将字典与不相交的键集组合在一起,但对于这个特定的输入,或者result中的每个字典都有相同键的任何其他输入,或者只有一个字典的任何输入,对字典进行迭代根本没有意义。你可以很容易地做到:

output = result2['result']
print(output)
# [{'userid': '8', 'clock': '1644715846', 'action': '3', 'resourceid': '0'}]

在没有任何工作的情况下获得相同的精确输出。

最新更新