如何在pythonscsv writer中将单引号替换为双引号?

2024-10-03 21:34:00 发布

您现在位置:Python中文网/ 问答频道 /正文

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

代码:

for n in G:
    centrality = nx.degree_centrality(G)
    betweeness = nx.betweenness_centrality(G)
    edges = nx.edges(G, n)
    csv_out.writerow([n, str(edges).replace("'",""), round(centrality[n],2), round(betweeness[n],2)])

输出:

^{pr2}$

我需要能够输入字符串数据。示例:

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)])

然而,结果是:

对于数字:

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

我也尝试过用撇号代替out引号(在列表之外),但没有成功。我也尝试使用下面的代码,但它给出了与上面相同的结果。在

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

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

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


Tags: 代码communitydata数字replaceiiiautomationassistant
2条回答

我最后使用了以下代码:

if(is_number(n) == True):
    edges_w = str(edges).replace("'","")
else:
    edges_w = str(edges).replace("'",'"')

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

尝试用反斜杠转义双引号。e、 g

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

相关问题 更多 >