UnicodeEncodeError后的请求仍然出现,尽管使用utf8编码

2024-06-16 19:07:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我看过很多关于这个话题的话题,但是没有一个能帮我解决这个问题。我有一个包含大量不同字符的文本的数据集。因此,在使用Python2.7.13上的请求库发出POST请求之前,我对文本进行编码。在

我的代码如下:

# -*- coding: utf-8 -*-
# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import json
import requests
text = """So happy to be together on your birthday! ❤ Thankful for real life. ❤ A post shared by Jessica Chastain (@jessicachastain) on Nov 13, 2016 at 5:22am PST"""
textX = json.dumps({'text': text.encode('utf-8')})
r = requests.post('http://####', data=textX,
                      headers={'Content-Type': 'application/json; charset=UTF-8'})
print(r.text)

数据以JSON格式发送。不管我在哪里尝试将文本编码为UTF-8,我仍然从请求中得到以下错误。在

^{pr2}$

编辑: 语法错误已修复,但不是问题的原因


Tags: 数据text文本importjson编码onsys
1条回答
网友
1楼 · 发布于 2024-06-16 19:07:35

json.dumps的默认值是生成一个仅限于ASCII的字符串,这样可以消除编码问题。错误不是使用Unicode字符串。确保以声明的编码(#coding=utf8)保存源文件:

# coding=utf8
import json
text = u"""So happy to be together on your birthday! ❤ Thankful for real life. ❤ A post shared by Jessica Chastain (@jessicachastain) on Nov 13, 2016 at 5:22am PST"""
textX = json.dumps({u'text': text})

输出:

^{pr2}$

相关问题 更多 >