我有一個通過csv.writer
對象生成的CSV文件。下面是代碼的簡化版本生成文件:在一列中解析包含列表的CSV
output = open('out.txt', 'ab+')
writer = csv.writer(output, dialect='excel')
for item in dataset:
row = []
row.append(item['id'])
row.append(item['timestamp'])
values = []
for value in item['values']
values.append(value['name'])
row.append(values)
writer.writerow(row)
output.flush()
output.close()
在CSV文件中的樣本行看起來是這樣的:
457458856894140182,Mon Dec 02 11:36:48 +0000 2013,[u'Sugar', u'Rice', u'Bleach']
我使用csv.reader
對象來解析數據嘗試回到另一個腳本中,但還沒有能夠正確解析第三列中的列表。 Python僅將整個值[u'Sugar', u'Rice', u'Bleach']
看作一個字符串。例如,代碼:
input = open('out.txt', 'rb')
reader = csv.reader(input, dialect='excel')
for row in reader:
print row[2][0]
input.close()
...只是輸出的[
上換行符一個長長的清單。
如何正確解析此CSV文件,以便將第三列中的結構組裝回到內存中的列表中?
你允許改變它的格式書寫的?現在你所做的事情並沒有在你的列表中引用逗號,所以最好將它們寫成一個組合的引用對象,或者給列表中的每個成員分列自己的列。 (另外:那不可能是你的代碼 - 內部for循環裏有一個冒號,請始終複製並粘貼你正在使用的代碼。) – DSM
我可以改變未來的CSV格式,是的,但不幸的是我無法更改已經生成的CSV格式。不,這不是我確切的代碼,因爲我的確切代碼長達幾百行。我的目標是提供[SSCCE](http://sscce.org/)。 – Jamie
SSCCE不能有語法錯誤,應該是自包含的。 :^) – DSM