【问题标题】:CSV remove field value wrap quotesCSV 删除字段值换行引号
【发布时间】:2012-07-07 05:16:08
【问题描述】:

我正在尝试将列表写入 csv,但是当我这样做时,我会在字段值周围得到包装引号:

number1,number2
"1234,2345"
"1235.7890"
"2345.5687"

使用此代码:

with open('C:\\temp\\test.csv', 'wb') as out_file:
...     csv_writer = csv.writer(out_file, delimiter=',')
...     csv_writer.writerow(('number1','number2'))
...     for f in myList:
...         csv_writer.writerow(f)

经过进一步研究,我发现您可以使用以下方法删除引号的书写:

quotechar='', quoting=csv.QUOTE_NONE**

当我将它应用到我的代码时,我得到了这个错误:

Traceback(最近一次调用最后一次):文件“”,行 4、在Error: need to escape, but no escapechar set

with open('C:\\temp\\test.csv', 'wb') as out_file:
...     csv_writer = csv.writer(out_file, delimiter=',',quotechar='', quoting=csv.QUOTE_NONE)
        csv_writer.writerow(('number1','number2'))
...     for f in myList:
...         csv_writer.writerow(f)

如何删除这些引号?

编辑

myList 看起来像:

     [['1234,2345'], ['1235,7890'], ['2345,5687']]

【问题讨论】:

  • 您使用什么程序来读取实际的 CSV 文件?引号是否显示在文本编辑器中?
  • @Blender,我使用 arcmap,值仅在 number1 字段下。
  • 您收到引号(或抱怨没有转义字符),因为您在 myList 中有需要引用或转义的内容。向我们展示myList 中由print myList[:3] 获得的前3 行,并将输出复制/粘贴到您的问题的编辑中。

标签: python csv file-io double-quotes


【解决方案1】:

列表中的不是数字而是文本,甚至包含分隔符。这意味着将其导出为 csv 它必须被转义。

如果您希望正确写入数据,则需要先将数据转换为数字,然后再将其导出为 csv。

编辑:另一方面,您的数据看起来已经包含逗号分隔值 - 为什么不直接将其写入文件而不使用 csv 写入器?

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 2020-01-07
    相关资源
    最近更新 更多