gpt4 book ai didi

python - 在 python 中读取 CSV 时双引号中的换行符

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:17 24 4
gpt4 key购买 nike

我有一个以下格式的 csv 文件:

"4931286","Lotion","New York","Bright color, yellow with 5" long
20% nylon"
"931286","Shampoo","New York","Dark, yellow with 10" long
20% nylon"
"3931286","Conditioner","LA","Bright color, yellow with 5" long
50% nylon"

以上数据应阅读为 3 行 4 列:ID、产品名称、位置和描述。可以看出,每行的描述中都有换行符。

我一直在搜索其他相关的 stackoverflow 问题,但似乎没有一个解决方案可以解决这个问题。

这是我的尝试:

from StringIO import StringIO
file = StringIO("""4931286","Lotion","New York","Bright color, yellow\n with 5" long 20% nylon""")

for row in csv.reader(file,quotechar='"', delimiter=',',quoting=csv.QUOTE_ALL, skipinitialspace=True):
print row

结果如下:

['4931286"', 'Lotion', 'New York', 'Bright color, yellow with 5 long']
['20% nylon']

但是,我想要的是

['4931286"', 'Lotion', 'New York', 'Bright color, yellow with 5 long 20% nylon']

我怎样才能做到这一点? python应该有办法吧?

最佳答案

数据不是 CSV 格式。

CSV 中的

" 必须使用 \ 进行转义,例如 "Bright color, yellow\n with 5\"long 20% nylon"

如果 " 仅用于英寸(以数字为前缀)试试这个:

import re
data = re.sub(r'([0-9])"(?![,\n])', r'\1\\"', data)

这个正则表达式将用 \" 替换所有 " 如果它有一个数字前缀

然后用csv.reader解析数据

编辑:由于 MaxU's suggestion 改变了正则表达式.

关于python - 在 python 中读取 CSV 时双引号中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37794283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com