正在导出 JSON 对 CSV 的响应

Exporting JSON response to CSV

如何将抓取的数据导出到 CSV 文件中。我下面的代码正确打印出所有数据,但我想以相同的方式逐行将其导出到 CSV 文件。

如何将数据写入 csv 文件?

import requests
import json
import csv

with open('Links.csv', 'r') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',', quotechar='"')

for row in readCSV:
    data = row[0]

    for b in row:
        r = requests.get(b)
        json_object = json.loads('{"data":%s}}' % (r.content.decode("utf-8").replace("jQuery111002521088376353553_1491736907010(", "")[:-2].replace("\'", "")))
        for game in json_object["data"]["docs"]:
            print ("Name: %s, Price: %s, CatalogId: %s, slug: %s" % (game["name"], game["minPrice"], game["catalogId"], game["slug"]))

我认为 pandas 是您要找的包裹。 使用 pandas.dataframe.from_dict 或 pandas.dataframe.from_json。一旦你有了 pandas 数据框,编写 csv 文件就很容易了。 https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html

您可以将数据写入 csv 文件中的一行,例如:

writeCSV.writerow([game["name"], game["minPrice"], game["catalogId"], game["slug"]])

这是添加到您的代码中的代码,需要初始化代码:

import csv
import json
import requests

with open('Links.csv', 'r') as r_csvfile, open('outp.csv', 'w') as w_csvfile:
    readCSV = csv.reader(r_csvfile, delimiter=',', quotechar='"')
    writeCSV = csv.writer(w_csvfile, delimiter=',', quotechar='"')
    writeCSV.writerow("Name Price CatalogId slug".split())

    for row in readCSV:
        data = row[0]

        for b in row:
            r = requests.get(b)
            json_object = json.loads('{"data":%s}}' % (
                r.content.decode("utf-8").replace(
                    "jQuery111002521088376353553_1491736907010(", "")[:-2]
                    .replace("\'", "")))
            for game in json_object["data"]["docs"]:
                writeCSV.writerow([game["name"], game["minPrice"],
                                   game["catalogId"], game["slug"]])

你没有给出任何实际数据,所以我无法测试这个,但它会很接近。