python utf-8 与 pandas 编码

问题描述 投票:0回答:1

我遇到了一个问题,此网页最能说明问题https://www.basketball-reference.com/draft/NBA_2018.html每个 document.charset 均以“utf-8”编码。我使用以下代码

html = requests.get("https://www.basketball-reference.com/draft/NBA_2018.html", headers={"User-Agent": "XY"}).content
df_list = pandas.read_html(html)

此时 df_list[0] 在控制台中正确显示第三顺位的名字为 Dončić。到目前为止还不错,但我想做的是将这个表输出到 csv 文件,所以我这样做了

with open('C:/Users/Eric/br2.csv', 'a', encoding='utf-8') as f:
 df_list[0].to_csv(f, header=True, encoding='utf-8')

将名称打印为 DonĐiĄ。如果我使用编码“utf-8-sig”也会发生这种情况,如果我使用编码“latin1”或不对其进行编码,则打开根本不起作用。如果我尝试简单地打印而不是使用.to_csv,我仍然会得到Donäiä‡。如果我使用 requests.get().text 它最终会变成 Donàià‡。

我的问题是:我已经在 python 中提取了信息并正确格式化,如何在文件中正确格式化它?

谢谢!

python pandas encoding utf-8
1个回答
0
投票

尝试显式设置编码。这应该可以解决你的问题。这对我有用。

html = requests.get("https://www.basketball-reference.com/draft/NBA_2018.html", headers={"User-Agent": "XY"}).content

# Add this line to your code
html.encoding = 'utf-8'
© www.soinside.com 2019 - 2024. All rights reserved.