PyQuery报错:UnicodeDecodeError: ‘gbk’ codec can‘t decode byte 0xa8...

目录

    • 1、问题描述
    • 2、问题原因
    • 3、问题解决


1、问题描述


今天在使用pyquery库读取本地HTML文件时报错:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa8 in position 805: illegal multibyte sequence

代码如下:

from pyquery import PyQuery as pq

path = r'../../xx.html'
html = pq(filename=path)
print(html('h1'))

2、问题原因


该错误通常是因为编码方式不一致导致的

一种情况是,如果HTML采用GBK编码方式,而IDE默认采用UTF-8编码方式,导致无法正常解码

另一种情况是,当CSV文件的表头包含中文时,可能导致同样的错误

总的来说,你需要在读取文件时保证正确的编码方式,匹配文件的实际编码方式

3、问题解决


对于采用非UTF-8编码的HTML,可以使用open()指定正确的编码打开文件:

with open(r'../../xx.html', "r", encoding="utf-8") as file:
    content = file.read()

html = pq(content)
print(html('h1'))

对于包含中文表头的CSV,也是同样的道理:

data = pd.read_csv(r'../../xx.csv', encoding="utf-8")

你可能感兴趣的:(#,Python,python)