从 Python 中的响应行中删除字符
Removing a Character from a Response Row in Python
与类似问题相关
我正在尝试将字典回复保存为 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"],
]
)
除非我 select 多个“键”
,否则它会完美运行
一个'key'的输出:
Keys,Clicks,Impressions,CTR,Position
amp pwa,1,4,0.25,7.25
两个 selected 时的输出:
Keys,Clicks,Impressions,CTR,Position
"amp pwa,MOBILE",1,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 时将项目作为附加字段调用。
与类似问题相关
我正在尝试将字典回复保存为 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"],
]
)
除非我 select 多个“键”
,否则它会完美运行一个'key'的输出:
Keys,Clicks,Impressions,CTR,Position
amp pwa,1,4,0.25,7.25
两个 selected 时的输出:
Keys,Clicks,Impressions,CTR,Position
"amp pwa,MOBILE",1,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 时将项目作为附加字段调用。