整个Python列表未写入CSV文件

时间:2019-06-11 06:53:43

标签: python list

我有一个Python列表作为程序的输出,该程序内部包含多个列表。我正在尝试将其写入CSV文件,但只有第一部分正在编写。 列表是:

"['DELETE', 'FROM', 'abc', 'WHERE', ['c', '=', 'book']]\n- from: [['abc']]\n  [0]:\n    ['abc']\n- table: [['abc']]\n  [0]:\n    ['abc']\n- where_expr: ['c', '=', 'book']"

我将列表转换为字典,如下所示:

   dict1={'delete': delete_list}
   df = pd.DataFrame(dict1, index=[0])

我的输出是:

         delete
0         ['DELETE', 'FROM', 'abc', 'WHERE', ['c', '=', 'book']]

我读了一个类似的问题,并尝试了此方法。整个输出都写在数据框中,但每行都有一个字符。

df2=pd.DataFrame([i for i in delete_list],columns=['Query'])
df2

输出为:

      Query
   0    [
   1    '
   2    D
   3    E
   4    L
   5    E
   6    T

   .
   .

它继续。...

我实际上正在尝试的是为每个嵌套列表使用不同的列。 像第一列将具有第一个列表,然后第二列将具有以下列表:[['abc']]\n [0]:\n ['abc']第三列将具有表:[['abc']],依此类推。 还有如何摆脱\ n? strip()无法正常工作!

1 个答案:

答案 0 :(得分:1)

如果目标是写入CSV文件,则不需要pandas,只需使用csv模块(在标准库中):

import csv
with open('dump.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=';', lineterminator='\n')
    writer.writerow([delete_list])

或者也许

import csv
with open('dump.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=';', lineterminator='\n')
    writer.writerow(delete_list.split("\n"))