Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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 csv编写器中将单引号替换为双引号?_Python_Regex_Csv - Fatal编程技术网

如何在Python csv编写器中将单引号替换为双引号?

如何在Python csv编写器中将单引号替换为双引号?,python,regex,csv,Python,Regex,Csv,我一直在尝试使用python输出csv文件。没有引号和数字,工作正常。例如: Automation Specialist I,"[(Automation Specialist I, Data Coordiator)]",0.01,0.0 Community Outreach Specialist,"[(Community Outreach Specialist, Librarian)]",0.01,0.0 Research Assistant III,"[(Research Assistant

我一直在尝试使用python输出csv文件。没有引号和数字,工作正常。例如:

Automation Specialist I,"[(Automation Specialist I, Data Coordiator)]",0.01,0.0
Community Outreach Specialist,"[(Community Outreach Specialist, Librarian)]",0.01,0.0
Research Assistant III,"[(Research Assistant III, Senior Quality Engineer)]",0.01,0.0
Cost Accountant,"[(Cost Accountant, Structural Engineer)]",0.01,0.0
Data Coordiator,"[(Data Coordiator, Technical Writer), (Data Coordiator, Automation Specialist I)]",0.02,0.01
代码:

输出:

24,"[(24, 31), (24, 64)]",0.02,0.04
25,"[(25, 77)]",0.01,0.0
26,"[(26, 49)]",0.01,0.0
27,"[(27, 75), (27, 79)]",0.02,0.02
20,"[(20, 9), (20, 84), (20, 40)]",0.03,0.03
21,"[(21, 77), (21, 64)]",0.02,0.02
我需要能够输入也字符串数据。例如:

Automation Specialist I,"[(Automation Specialist I, Data Coordiator)]",0.01,0.0
Community Outreach Specialist,"[(Community Outreach Specialist, Librarian)]",0.01,0.0
Research Assistant III,"[(Research Assistant III, Senior Quality Engineer)]",0.01,0.0
Cost Accountant,"[(Cost Accountant, Structural Engineer)]",0.01,0.0
Data Coordiator,"[(Data Coordiator, Technical Writer), (Data Coordiator, Automation Specialist I)]",0.02,0.01
但是,我需要一个引用值,以便在前端处理它。像这样:

Automation Specialist I,"[("Automation Specialist I", "Data Coordiator")]",0.01,0.0
Community Outreach Specialist,"[("Community Outreach Specialist", "Librarian")]",0.01,0.0
Research Assistant III,"[("Research Assistant III", "Senior Quality Engineer")]",0.01,0.0
Cost Accountant,"[("Cost Accountant", "Structural Engineer")]",0.01,0.0
Data Coordiator,"[("Data Coordiator", "Technical Writer"), ("Data Coordiator", "Automation Specialist I")]",0.02,0.01
所以我使用了下面的代码:

csv_out.writerow([n, str(edges).replace("'",'"'), round(centrality[n],2), round(betweeness[n],2)])
if(is_number(n) == True):
    edges_w = str(edges).replace("'","")
else:
    edges_w = str(edges).replace("'",'"')
然而,结果是:

有关数字:

24,"[(""24"", ""31""), (""24"", ""64"")]",0.02,0.04
25,"[(""25"", ""77"")]",0.01,0.0
26,"[(""26"", ""49"")]",0.01,0.0
对于字符串:

Automation Specialist I,"[(""Automation Specialist I"", ""Data Coordiator"")]",0.01,0.0
Community Outreach Specialist,"[(""Community Outreach Specialist"", ""Librarian")]"",0.01,0.0
我还尝试用撇号替换掉掉引号(在列表之外),但没有成功。我也尝试使用下面的代码,但它给出了与上面相同的结果

str(edges).replace("'",'"').replace('""','"')
我应该怎么做才能得到我想要的结果? 我计划在以后过滤输入的类型,以便仅在字符串为时应用该技术。因为如果它是一个数字,理想输出就是第一个例子。当我使用最后一个时,我的前端代码处理文本和数字。但当我使用第一个例子时,它不适用于文本,只适用于数字

你能帮帮我吗? 如何将撇号替换为引号?
非常感谢。

尝试用反斜杠避开双引号。e、 g

str(edges).replace("'","\"")

我最终使用了以下代码:

csv_out.writerow([n, str(edges).replace("'",'"'), round(centrality[n],2), round(betweeness[n],2)])
if(is_number(n) == True):
    edges_w = str(edges).replace("'","")
else:
    edges_w = str(edges).replace("'",'"')

我使用了一个函数来检查它是否是一个数字,然后根据这个函数的返回值替换str。我已经考虑过@Stein comments来使用此解决方案。

应该能满足您的需求。您不应该尝试自己修改CSV文件-格式看起来很简单,但实际上要正确修改是相当棘手的。(csv_out对象的定义是相关的,把它放到问题中会对你有好处。)如果你不尝试替换任何东西,你能告诉我们这条线是什么样子吗?我想看看未格式化的文本是什么样子。。。此外,我对这个str(edges)感到困惑。替换(“,”)。替换(“,”))为什么要执行“,”以及“,”和“…”…为什么要使用不同的格式?写“[(“自动化专家I”,“数据协调器”)有什么错"? 在原始CSV格式中,引号字符应该加倍。用一个像样的CSV解析器(如Excel)读取此CSV将生成字符串[(“自动化专家I”,“数据协调器”)],这似乎适合您的前端。这与Jaqueline所做的完全相同,只是风格问题,python似乎更喜欢Jaqueline的风格而不是您的:输入
“\”“Python提示符上的,Python将其称为“代码>”“/CODE”>如果在字符串式撇号的中间有“代码>”/代码>引用。