任何人都可以帮助并解释如何从具有多个键、值对的键中解包项目?
{'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'}]
在没有任何工作的情况下获得相同的精确输出。