我有一个 CSV 格式的非常大的字符串,它将被写入一个 CSV 文件。
如果 python 脚本,我尝试使用最简单的方法将其写入 CSV
results=""" "2013-12-03 23:59:52","/core/log","79.223.39.000","logging-4.0",iPad,Unknown,"1.0.1.59-266060",NA,NA,NA,NA,3,"1385593191.865",true,ERROR,"app_error","iPad/Unknown/webkit/537.51.1",NA,"Does+not",false
"2013-12-03 23:58:41","/core/log","217.7.59.000","logging-4.0",Win32,Unknown,"1.0.1.59-266060",NA,NA,NA,NA,4,"1385593120.68",true,ERROR,"app_error","Win32/Unknown/msie/9.0",NA,"Does+not,false
"2013-12-03 23:58:19","/core/client_log","79.240.195.000","logging-4.0",Win32,"5.1","1.0.1.59-266060",NA,NA,NA,NA,6,"1385593099.001",true,ERROR,"app_error","Win32/5.1/mozilla/25.0",NA,"Could+not:+{"url":"/all.json?status=ongoing,scheduled,conflict","code":0,"data":"","success":false,"error":true,"cached":false,"jqXhr":{"readyState":0,"responseText":"","status":0,"statusText":"error"}}",false"""
resultArray = results.split('\n')
with open(csvfile, 'wb') as f:
writer = csv.writer(f)
for row in resultArray:
writer.writerows(row)
Run Code Online (Sandbox Code Playgroud)
代码返回
《未知方言》
错误
错误是由于脚本还是由于正在写入的字符串?
如果问题是输入错误,我该如何清理它以便 csv.writer() 方法可以使用它?
您需要指定字符串的格式:
with open(csvfile, 'wb') as f:
writer = csv.writer(f, delimiter=',', quotechar="'", quoting=csv.QUOTE_ALL)
Run Code Online (Sandbox Code Playgroud)
您可能还想重新审视您的写作循环;按照您编写的方式,您将在文件中得到一列,每一行将是结果字符串中的一个字符。
要真正利用该模块,请尝试以下操作:
import csv
lines = ["'A','bunch+of','multiline','CSV,LIKE,STRING'"]
reader = csv.reader(lines, quotechar="'")
with open('out.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerows(list(reader))
Run Code Online (Sandbox Code Playgroud)
out.csv将有:
A,bunch+of,multiline,"CSV,LIKE,STRING"
Run Code Online (Sandbox Code Playgroud)
如果要引用所有列值,则添加quoting=csv.QUOTE_ALL到 writer 对象;那么你的文件将有:
"A","bunch+of","multiline","CSV,LIKE,STRING"
Run Code Online (Sandbox Code Playgroud)
要将引号更改为',请添加quotechar="'"到 writer 对象。
| 归档时间: |
|
| 查看次数: |
13650 次 |
| 最近记录: |