每个人。
我想将 csv "20568078","240431","jpg","St, Carolina 1920",, 解析为 ["20568078","240431","jpg","St, Carolina 1920","",""]
通过使用这个:
string=r'"20568078","240431","jpg","St, Carolina 1920",,'
reader = csv.reader(string)
for r in reader:
print (r)
我得到了输出:
['20568078']
['', '']
['240431']
['', '']
['jpg']
['', '']
['St, Carolina 1920']
['', '']
['', '']
我想知道如何删除不需要的['', ''],并将最后两个,,改为"" 和 ""
谢谢。
请您参考如下方法:
使用 StringIO 将此字符串视为类文件对象
>>> import csv
>>> from StringIO import StringIO
>>> string=r'"20568078","240431","jpg","St, Carolina 1920",,'
>>> for r in csv.reader(StringIO(string)):
print (r)
['20568078', '240431', 'jpg', 'St, Carolina 1920', '', '']
http://docs.python.org/2/library/csv.html#csv.reader
csv.reader(csvfile, dialect='excel', **fmtparams)Return a reader object which will iterate over lines in the given
csvfile.csvfilecan be any object which supports the iterator protocol and returns a string each time itsnext()method is called —fileobjects andlistobjects are both suitable.
您的代码的问题在于您将单个字符串传递给阅读器。然后读者将每个字符解释为行。例如。
>>> string=r'"20568078","240431","jpg","St, Carolina 1920",,'
>>> i = iter(string)
>>> next(i)
'"'
>>> next(i)
'2'
大致是 csv 如何在您传递给它的可迭代对象上调用 next。但是,您使用表示多行字符串的双引号,这解释了为什么它们全部出现在一个片段中。
