Python - Pandas : 如何从 url 保存 csv 文件
Python - Pandas : how to save csv file from url
所以我正在尝试获取包含请求的 csv 文件并将其保存到我的项目中:
import requests
import pandas as pd
import csv
def get_and_save_countries():
url = 'https://www.trackcorona.live/api/countries'
r = requests.get(url)
data = r.json()
data = data["data"]
with open("corona/dash_apps/finished_apps/apicountries.csv","w",newline="") as f:
title = "location,country_code,latitude,longitude,confirmed,dead,recovered,updated".split(",")
cw = csv.DictWriter(f,title,delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
cw.writeheader()
cw.writerows(data)
我做到了,但是当我尝试这个时:
get_data.get_and_save_countries()
df = pd.read_csv("corona\dash_apps\finished_apps\apicountries.csv")
我收到这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 1: invalid continuation byte
我不知道为什么。欢迎任何帮助。谢谢。
尝试:
with open("corona/dash_apps/finished_apps/apicountries.csv","w",newline="", encoding ='utf-8') as f:
明确指定编码 encoding='utf-8'
写入文件时,默认编码为locale.getpreferredencoding(False)
。在通常不是 UTF-8 的 Windows 上,甚至在 Linux 上,终端也可以配置为非 UTF-8。 Pandas 默认为 utf-8
,因此将 encoding='utf8'
指定为 open
的另一个参数。
所以我正在尝试获取包含请求的 csv 文件并将其保存到我的项目中:
import requests
import pandas as pd
import csv
def get_and_save_countries():
url = 'https://www.trackcorona.live/api/countries'
r = requests.get(url)
data = r.json()
data = data["data"]
with open("corona/dash_apps/finished_apps/apicountries.csv","w",newline="") as f:
title = "location,country_code,latitude,longitude,confirmed,dead,recovered,updated".split(",")
cw = csv.DictWriter(f,title,delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
cw.writeheader()
cw.writerows(data)
我做到了,但是当我尝试这个时:
get_data.get_and_save_countries()
df = pd.read_csv("corona\dash_apps\finished_apps\apicountries.csv")
我收到这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 1: invalid continuation byte
我不知道为什么。欢迎任何帮助。谢谢。
尝试:
with open("corona/dash_apps/finished_apps/apicountries.csv","w",newline="", encoding ='utf-8') as f:
明确指定编码 encoding='utf-8'
写入文件时,默认编码为locale.getpreferredencoding(False)
。在通常不是 UTF-8 的 Windows 上,甚至在 Linux 上,终端也可以配置为非 UTF-8。 Pandas 默认为 utf-8
,因此将 encoding='utf8'
指定为 open
的另一个参数。