如何解决从 Python 中的响应行中删除字符
关于类似问题here
我正在尝试将字典响应保存为 csv 文件。多亏了 Malcolm
,我已经完成了 90% 的我想要的格式这是我正在使用的编写器代码:
import csv
with open("out.csv","w",encoding="utf8") as f:
writer = csv.writer(f)
headers = ["Keys","Clicks","Impressions","CTR","Position"]
writer.writerow(headers)
for row in rows:
writer.writerow(
[
",".join(row.get("keys",[])),row["clicks"],row["impressions"],row["ctr"],row["postition"],]
)
除非我选择多个“键”,否则它可以完美运行
Keys,Clicks,Impressions,CTR,Position
amp pwa,1,4,0.25,7.25
选择两个时的输出:
Keys,Position
"amp pwa,MOBILE",2,0.5,5.5
键是使用其代码传递给 Google Search Console API 的维度:
request = {
'startDate': flags.start_date,'endDate': flags.end_date,'dimensions': ['query'],'rowLimit': 20
}
我正在编写另一个程序,该程序将遍历所有生成的 CSV 文件(我一次运行多个响应)并删除所有双引号。
认为你们可能有一个更优雅的解决方案,而不是用这种方式强力武装它。
对 Python 和一般编码来说非常新,所以如果我忽略了一些明显的东西,我深表歉意。非常感谢任何帮助。
我尝试了以下方法
",".join(str(row.get("keys",[])).replace('"',''))
但这使得结果就像每个字符后面的逗号
我还尝试编辑作者以包含一个引用参数:
writer = csv.writer(f,quoting=csv.QUOTE_NONE)
这导致了这个错误:_csv.Error: need to escape,but no escapechar set
我尝试同时使用 \0 和 '' 作为转义字符,但它给了我同样的错误
使用 \n 或 ',' 会使格式更加混乱。
解决方法
在查看 Malcom's 问题后,我意识到我完全错了。我应该拆分列并添加它而不是替换它。这是我想出的解决方案
import csv
filename = title + ".csv"
with open(p/filename,"w",encoding="utf8",newline='') as f:
rows = response["rows"]
writer = csv.writer(f)
headers = ["Keys","Clicks","Impressions","CTR","Position","date","page","device","query"]
writer.writerow(headers)
for row in rows:
dimensions = row["keys"]
writer.writerow(
[
",".join(row.get("keys",[])),row["clicks"],row["impressions"],row["ctr"],row["position"],dimensions[0],dimensions[1],dimensions[2],dimensions[3]
]
)
我只需要将“键”设置为另一个非 变量?(可能是列表),然后在保存 csv 时将这些项目作为附加字段调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。