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

Python将csv导入列表,在最后一个双引号后拆分,python,python-3.x,list,csv,Python,Python 3.x,List,Csv,我有一个从SQL数据库导出的CSV文件。现在的问题是表中的最后一个字段包含许多行。我在将其导入列表时遇到问题。如何将CSV文件导入列表,使列表中的最后一项成为最后一列内容及其所有行。(多个项目,新行应位于一个字段列表中) CSV文件内容: `1,Policy,02/07/2018 11:57:39,Inbound Files,,False,";Facet Advanced:Advanced StrPropType_FileSizeByTypeLimit= StrPropType_ServerPo

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

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`
当前8列为以下列时

`1,Policy,02/07/2018 11:57:39,Inbound Files,,False,`

其余字段仅在数据库中有一个字段,因此我需要将其放在列表中的一个单独项目中。

如果您的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"
代码:

输出:

   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...  

如果您的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"
代码:

输出:

   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...  

假设最后一个报价没有丢失,并且您的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']

假设最后一个报价没有丢失,并且您的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']

您尝试了什么?@rukhta将open(full_file_path,newline='\n')作为f:for i,x在枚举(f)中,但做得不对。您尝试了什么?@rukhta将open(full_file_path,newline='\n')作为f:for i,x在枚举(f)中,但做得不对。