Python导入csv列表,在最后双引号后拆分

时间:2018-02-07 14:00:11

标签: python python-3.x list csv

我有一个从SQL数据库导出的CSV文件。现在问题是表中的最后一个字段包含许多行。我在将其导入列表时遇到问题。如何将CSV文件导入列表,以便列表中的最后一项将是包含其所有行的最后一列内容。 (多个项目,新行应该在一个字段列表中)

CSV文件内容:

    grid.remove("key-4-1-1.5-2-5-2")
    grid.remove("key-4-1-2.5-2-5-2")
    grid.remove("label-4-3.5-4-5-4")

当前8列是以下

`1,Policy,02/07/2018 11:57:39,Inbound Files,,False,";Facet Advanced:Advanced
StrPropType_FileSizeByTypeLimit=
StrPropType_ServerPort=11073
NumPropType_CheckServerCertificate=False
NumPropType_ResumeSanitizationsOnReconnect=True
NumPropType_KeepAliveSec=60
StrPropType_SyslogServer=
NumPropType_ResultsFormat=0`

其余的只是数据库中的一个字段,所以我需要将它放在列表中的单独项目中。

2 个答案:

答案 0 :(得分:3)

假设最后一个引用实际上没有丢失并且你的csv文件是正确的 - 只需使用csv.reader即可。它会正确处理换行符:

>>> for line in csv.reader(open('...')):
...     print(repr(line))
... 
['1', 'Policy', '02/07/2018 11:57:39', 'Inbound Files', '', 'False', ';Facet Advanced:Advanced\nStrPropType_FileSizeByTypeLimit=\nStrPropType_ServerPort=11073\nNumPropType_CheckServerCertificate=False\nNumPropType_ResumeSanitizationsOnReconnect=True\nNumPropType_KeepAliveSec=60\nStrPropType_SyslogServer=\nNumPropType_ResultsFormat=0']

答案 1 :(得分:1)

如果您的csv具有正确的引用,则可以将其加载到数据框中:

输入:

1,Policy,02/07/2018 11:57:39,Inbound Files,,False,";Facet Advanced:Advanced
StrPropType_FileSizeByTypeLimit=
StrPropType_ServerPort=11073
NumPropType_CheckServerCertificate=False
NumPropType_ResumeSanitizationsOnReconnect=True
NumPropType_KeepAliveSec=60
StrPropType_SyslogServer=
NumPropType_ResultsFormat=0"

代码:

import pandas as pd
a=pd.read_table('data2',engine='python',sep=',',header=None)
print(a)

输出:

   0       1                    2              3   4      5  \
0  1  Policy  02/07/2018 11:57:39  Inbound Files NaN  False   

                                                   6  
0  ;Facet Advanced:Advanced\nStrPropType_FileSize...