我有一个从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`
其余的只是数据库中的一个字段,所以我需要将它放在列表中的单独项目中。
答案 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...