知行编程网知行编程网  2022-10-29 21:30 知行编程网 隐藏边栏  47 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python request请求乱码怎么办的相关知识,希望可以帮到处于编程学习途中的小伙伴

python请求请求乱码怎么办

POST从网页中获取数据,由于编码问题,出现乱码。

方法:

```
response = session.get('http://xxxx')
print(response.encoding)
response.encoding = 'utf-8'
print(response.json())
```

原因:

1.由于数据源的编码声明不规范,reuqests无法确定返回数据的正确编码,所以使用其默认编码iso8859-1对数据进行转换

为 unicode,没使用正确的编码 utf-8,于是就出现乱码了。

解决办法一就是手动设置返回数据的正确编码:response.encoding = 'utf-8'。这样结果就是正确的 unicode 类型字符串。

或者将错误的 unicode 转换回具有相同 iso8859-1 编码的原始 utf-8 编码 str 类型字符串:data.encode('iso8859-1')。

2.(没看懂,反正就是这个意思。编码真的是个大坑!)Python中字符串其实有两种,str类型和unicode类型,两者都是

basestring的派生类。str实际上相当于string, 而unicode则是标准的字符串,相当于wstring。

其中,I/O 读取基本都是 str 类型,也就是说 Python 并不关心这些字节代表什么。但是如果需要做真正的字符串操作,建议使用

unicode类型,这样确保不存在编码问题。

JSON 理论上应该完全用 ASCII 表示,宽字符的形式类似于 \u1111。但是现在有很多非标准的JSON,比如s="""{"title":

"Hello, world"}"""。此时需要确定这部分内容以字节表示时使用的是什么编码。如果是UTF-8,那么第一个

s_u=s.decode("UTF-8")变成unicode字符串。

另一方面,只要这个字符串的编码与Python运行环境的编码一致,也可以直接加载(str类型变量)。例如在 Linux 下如果

LANG是UTF-8的,所以python运行的时候可以直接插入UTF-8编码的JSON字符串。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享