正在导出 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"]])
你没有给出任何实际数据,所以我无法测试这个,但它会很接近。
如何将抓取的数据导出到 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"]])
你没有给出任何实际数据,所以我无法测试这个,但它会很接近。