用双引号转义双引号

时间:2020-08-06 09:32:08

标签: python python-3.x google-cloud-dataflow apache-beam

我试图让csv编写器使用双引号作为转义字符,并在数据字段中出现时在双引号中添加双引号。

我的功能是Apache Beam Dataflow作业的一部分。

任何建议将不胜感激。

输入记录: “ ab” c”,“ def”

我的函数返回的实际输出: abc”,def

我正在尝试实现的输出 “ abc”“”,def

输入文件可能包含以下记录:

1,“ mystring1”,“ mystring2”
2,“ mystring3”,“ mystring4”
3,“ myst” ring5“,” mystring6“

通知记录3在该字段中有一个双引号。

我想通过添加
来避免使用双引号 用双引号引起来,然后引用整个字段。

1,mystring1,mystring2
2,mystring3,mystring4
3,“ myst”“ ring5”,mystring6

我正在调用的功能

def parse_file(element):
      for line in csv.reader([element], quotechar='"', delimiter=','):
          output_str = io.StringIO()
          cw = csv.writer(output_str, quotechar='"', delimiter=',', escapechar='"', quoting=csv.QUOTE_MINIMAL)
          cw.writerow(line)
          output_str.close()
          clean_line = ', '.join(line)
          return clean_line

1 个答案:

答案 0 :(得分:0)

这是一个简单的解决方案,它采用字符串类型的输入元素。

vec = str('"ab"c","def""')
print(list(map(lambda x: '"' + x + '"' if '""' in x else x, [y.strip('"').replace('"', '""') for y in vec.split(',')])))

如果我能理解我会道歉的话