首页 > 解决方案 > 展平python中字符串列表的列表

问题描述

我在python中有以下列表:

ipdb> xgboost_prediction
'[["2019-08-16 14:22:00.0", "ls5923_splunk", "False"]]'

我的目标是将它附加到 csv 文件中,这将在分钟基础上发生。

现在,我想我会很容易地转换为 pandas 数据框并附加 csv。但不知何故,我正在努力解决它。我将如何将其展平并转换为数据框?

我试过了:

ipdb> 
ipdb> list2 = [inner for item in xgboost_prediction for inner in ast.literal_eval(item)]
*** SyntaxError: unexpected EOF while parsing

ipdb> new_lst = [sub_val for val in xgboost_prediction for sub_val in eval(val)]
*** SyntaxError: unexpected EOF while parsing

请指教。

标签: pythonnumpy-ndarray

解决方案


由于您只想使用 pandas 将正常格式的值附加到 csv 是矫枉过正的。您可以简单地将数组转换为逗号分隔的字符串并将其直接附加到文件中。如果您认为您的字符串可能包含特殊字符,您还可以使用 csv 库,它会自动添加正确的格式来转义任何字符串。

xgboost_prediction = [["2019-08-16 14:22:00.0", "ls5923_splunk", "False"]]

with open('outputfile.csv', 'a+') as f:
    # Incase you are appending multiple predictions
    for entry in xgboost_prediction:
        f.write(','.join(entry))
    f.write('\n')

推荐阅读