从 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 时将项目作为附加字段调用。