我向站点发送请求,解析数据,然后尝试输出,但是输出了一些奇怪的编码,我不知道如何解决。
body_clean = re.search('"body_clean": "', r.text)
body_clean1 = re.search('", "attachments', r.text)
body = r.text[body_clean.end():body_clean1.start()]
print (body)
我需要输出:
Сдать после каникул, 15 апреля.&;Убедительная просьба оформлять решение &;как положено&; в соответствии с тем &;как учили&;, а не так, будто бы вы его на коленке за 5 минут перед сдачей делали. Писать разборчиво и аккуратно.
但是我得到了输出
\u0421\u0434\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u043d\u0438\u043a\u0443\u043b, 15 \u0430\u043f\u0440\u0435\u043b\u044f. \r\n\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0441\u044c\u0431\u0430 \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 "\u043a\u0430\u043a \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e" \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0435\u043c "\u043a\u0430\u043a \u0443\u0447\u0438\u043b\u0438", \u0430 \u043d\u0435 \u0442\u0430\u043a, \u0431\u0443\u0434\u0442\u043e \u0431\u044b \u0432\u044b \u0435\u0433\u043e \u043d\u0430 \u043a\u043e\u043b\u0435\u043d\u043a\u0435 \u0437\u0430 5 \u043c\u0438\u043d\u0443\u0442 \u043f\u0435\u0440\u0435\u0434 \u0441\u0434\u0430\u0447\u0435\u0439 \u0434\u0435\u043b\u0430\u043b\u0438. \u041f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0437\u0431\u043e\u0440\u0447\u0438\u0432\u043e \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e.
更新:
尝试过此代码,获得相同的输出
encoded = body.encode("utf-8")
decoded = str(encoded,'utf-8')
print(decoded)
我从中解析数据的页面信息:
HTTP/1.1 200 OK
Server: nginx/1.14.0
Date: Fri, 12 Apr 2019 11:47:09 GMT
Content-Type: application/json
答案 0 :(得分:0)
您得到的输出是一串unicode字符。在utf-8
中对正文进行编码以获取字节字符串,然后对其进行解码:
body = "\u0421\u0434\u0430\u0442\u044c."
encoded = body.encode("utf-8")
decoded = str(encoded,'utf-8')
print(decoded)
输出:
Сдать.
答案 1 :(得分:0)
您的服务器可能响应的编码错误。您可以使用r.encoding
进行检查。当您访问响应的requests
属性时,.text
正在使用它。
您可以使用utf-8
手动将编码更改为r.encoding = "utf-8"
,然后访问.text
属性。
r.encoding = "utf-8"
# Now r.text shoud be fine
body_clean = re.search('"body_clean": "', r.text)
body_clean1 = re.search('", "attachments', r.text)
body = r.text[body_clean.end():body_clean1.start()]
print (body)
requests
documentation