【发布时间】:2022-07-01 07:18:34
【问题描述】:
我的 python 文件中有一个代码,如下所示。
data_to_parse = """
Repo: 2msdsdodule-losdsdader
Path: 2modsdsule-loasdsdder
Components: 2sssss-sdsds sds-sdsd-test sdsd-load-sdsds
Repo: 1msdsdodule-losdsdader
Path: 1modsdsule-loasdsdder
Components: 1libmsdsodule-sdsds sds-sdsd-test sdsd-load-sdsds
Repo: 3msdsdodule-losdsdader
Path: 3modsdsule-loasdsdder
Components: 3libmsdsodule-sdsds sds-sdsd-test sdsd-load-sdsds
"""
lines = data_to_parse.splitlines()#print(lines,'-----')
result_list = []
result = {}
for line in lines:
results = {}
if 'Components:' in line:
line2 = line.split(':')
result['Components']= (line2[1].strip())
if 'Path:' in line:
line2 = line.split(':')
result['Path'] = (line2[1].strip())
results[result['Components']] = result['Path']
result_list.append(results)
print(result_list)
但是当我尝试运行它时,它向我显示如下错误:
results[result['Components']] = result['Path']
KeyError: 'Components'
。谁能帮我把这个联系起来?我被困在这里。任何建议任何帮助都很重要。
我想要的输出:
[{'2sssss-sdsds sds-sdsd-test sdsd-load-sdsds':'2msdsdodule-losdsdader'}
{'1libmsdsodule-sdsds sds-sdsd-test sdsd-load-sdsds':'1msdsdodule-losdsdader'},
{'3libmsdsodule-sdsds sds-sdsd-test sdsd-load-sdsds':'3msdsdodule-losdsdader
'}]
【问题讨论】:
-
出错时请附上调试信息,如变量
line、results和result的值。 -
如果第一个条件不匹配,则结果字典没有组件键。
-
@Phantoms 有没有办法解决这个问题??
-
@Nehanegi 你想达到什么目标?输出应该是什么样子?
-
@Phantoms 我已经编辑了问题,你可以检查一下吗??
标签: python python-3.x python-2.7 dictionary parsing