gpt4 book ai didi

python - 如何将字符串作为参数传递给 Python csv writerow?

转载 作者:太空宇宙 更新时间:2023-11-03 21:18:01 24 4
gpt4 key购买 nike

以下代码适用于创建 .csv 文件(在 Python 2.7 中):

with open('court_addresses.csv', 'w') as csvfile:
fieldnames = ['court_name', 'full_court_link', 'clean_address']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writerow({'court_name': court_name, 'full_court_link': full_court_link, 'clean_address': clean_address})

但是,如果我有一个定义如下的变量,而不是上面的 writerow 语法,该怎么办:

row = "'court_name': court_name, 'full_court_link': full_court_link, 'clean_address': clean_address"

不幸的是,这不起作用。我怎样才能调用以下电话:

writer.writerow({row}) 

它能工作吗(在 Python 2.7 中)?目前,它抛出以下错误:

ValueError:字典包含不在字段名中的字段

显然,csv writerow() 函数不喜欢将字符串作为参数,尽管我知道这也适用于其他函数。

最佳答案

writerow() 的参数必须是字典或列表。包含字典内容表示的字符串不会自动解析为字典。

如果您的字符串仅包含数据,您可以使用 ast.literal_eval()来解析它。但由于您的字符串包含变量名称,因此您必须使用 eval() 来评估它。

writer.writerow(eval('{' + row + '}')) 

这是非常危险的,因为eval()可以执行任意代码。我建议你找到另一种方式来完成你正在做的事情。例如。使它成为一个真正的字典:

row = {'court_name': court_name, 'full_court_link': full_court_link, 'clean_address': clean_address}
writer.writerow({row})

关于python - 如何将字符串作为参数传递给 Python csv writerow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54542907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com