首页 > 解决方案 > 如何取出字典值中的列表,并添加换行符?

问题描述

如何取出字典值中的列表并使其成为字典的一部分?

这是我要使用的输入:

[{'id': 1, 'step_and_result': [{'step': 'stepA', 'result': 'resultA'}, {'step': 'stepB', 'result': 'resultB'}, {'step': 'stepC', 'result': 'ResultC'}], 'other_key2': random_text}]

这是我想要得到的输出:

[{'id': 1, 'step': 'stepA' + '\n' + 'stepB' + '\n' + 'stepC', 'result': 'resultA' + '\n' + 'resultB' + '\n' + 'resultC', 'other_key2': random_text}]

这样当我将字典放入数据框中时,步骤和结果显示在不同的行上,但在同一个单元格内

在此处输入图像描述

我主要停留在如何在列表中的字典中的列表中的列表中给出步骤和结果。谢谢你的帮助。

标签: pythonpandasdictionarydataframe

解决方案


正如 Peter Leimbigler 所说,结果键的预期方式很奇怪。假设您保持相同的名称,这是使用列表推导的解决方案:

    # changed first 'result' key to 'expected'
    given_input = [{'id': 1, 'step_and_result': [{'step': 'stepA', 'expected': 'resultA'}, {'step': 'stepB', 'expected': 'resultB'}, {'step': 'stepC', 'expected': 'ResultC'}], 'other_key2': random_text}]

    given_input[0]['step'] = '\n'.join([d['step'] for d in given_input[0]['step_and_result']])
    given_input[0]['result'] = '\n'.join([d['expected'] for d in given_input[0]['step_and_result']])
    given_input[0].pop('step_and_result')

推荐阅读