Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何仅用括号之间的多个引号替换引号?_Python - Fatal编程技术网

Python 如何仅用括号之间的多个引号替换引号?

Python 如何仅用括号之间的多个引号替换引号?,python,Python,我得到了一个格式错误的CSV,它的括号中有引号,如下所示: 1, 2, 3, "4, 5, 6, (7, 8, 9, "10, 11, 12", 13), 14" 所需输出为: 1, 2, 3, "4, 5, 6, (7, 8, 9, ""10, 11, 12"", 13), 14" 我可以考虑用正则表达式替换第一个引号,但如何对括号内的所有引号执行此操作 我只能想到: s = '''1, 2, 3, "4, 5, 6, (7, 8, 9, "10, 11, 12", 13), 14"'''

我得到了一个格式错误的CSV,它的括号中有引号,如下所示:

1, 2, 3, "4, 5, 6, (7, 8, 9, "10, 11, 12", 13), 14"
所需输出为:

1, 2, 3, "4, 5, 6, (7, 8, 9, ""10, 11, 12"", 13), 14"
我可以考虑用正则表达式替换第一个引号,但如何对括号内的所有引号执行此操作

我只能想到:

s = '''1, 2, 3, "4, 5, 6, (7, 8, 9, "10, 11, 12", 13), 14"'''
s.replace(re.search(r'\(.*\)', s).group(0), re.search(r'\(.*\)', s).group(0).replace('"', '""'))
但是我需要足够的效率,因为CSV是巨大的(>100000),只有一些格式错误的行

import re

data = '1, 2, 3, "4, 5, 6, (7, 8, 9, "10, 11, 12", 13), 14"'

def replace(g):
    return g.group(0).replace('"', '""')

print(re.sub(r'\(.*?\)', replace, data))
输出:

1, 2, 3, "4, 5, 6, (7, 8, 9, ""10, 11, 12"", 13), 14"

您文件中的所有论题是否平衡,即每行的
数量(
等于
数量)
?您的数据是否包含嵌套的偏旁词,例如
1,2,(3,(4,5),6),7
,或者仅包含一个平面偏旁词(偏旁词中没有偏旁词)?