python - 解析引号和转义字符 CSV 文件
问题描述
我需要将大量数据导入 SQL,输出文件(文本)是从 ABAP 程序生成的 UTC-8,我可以在其中定义引号和转义字符,默认情况下我正在使用:
\
作为转义字符串
"
(双引号)引用字符
;
(分号)分隔列。
我的问题在于大多数文本类型的列都包含双引号或转义字符,当尝试将其导入 SQL 数据库时,由于列的数据分配错误,接口失败。
我设法避免使用下面的 python 脚本使用 \n,但我正在努力使用双引号,你能建议任何想法来替换引号字符内的双引号吗?
文本字段,例如来自“厄瓜多尔”的=香蕉,因为 CSV 文件中的数据存储为“来自“厄瓜多尔”的香蕉,这给我造成了很大的麻烦
import csv
filename = "0180914_074626.csv"
with open(filename, 'r', encoding='utf8', errors='ignore') as inputfile, \
open(filename + '.log.csv', 'w', encoding="utf8") as outputfile_log:
w = csv.writer(outputfile_log, delimiter=';', quotechar='"', lineterminator='\n')
for record in csv.reader(inputfile):
#print(record)
w.writerow(tuple(s.replace("\n", '-') for s in record))
解决方案
推荐阅读
- powershell - Powershell更改文件夹内一个子文件夹(按文件夹名称)内的部分文件名
- project-reactor - Reactor Flux 抛出非法ArgumentException - 怀疑是由于 bufferTimeout
- database - 使用gnuplot逐行绘制
- python - 接收错误:使用 flow_from_directory 时列表索引超出范围
- python-3.x - 如何使用带有值列表的 Django 迭代器?
- java - 如何防止用户在 Hangman JAVA 中输入相同的字母?
- c# - 具有实体框架上下文的 devart web api 调用过程
- c# - 如何使用命令参数运行 Interop.Excel.Application?
- java - Spring Boot - 应用程序在 PRD 中丢失数据库连接
- docker - Docker compose - services.vulcain.ports 包含无效类型,应该是数字,或者对象