有一个包含一些中文字符的json数据。
{
"font_size": "47",
"sentences": [
"你好",
"sample sentence1",
"sample sentence2",
"sample sentence3",
"sample sentence4",
"sample sentence5",
"sample sentence6",
"sample sentence7",
"sample sentence8",
"sample sentence9"
]
}
我创建了一个
Flask
应用,并使用它来接收上述JSON数据。我使用以下curl命令来发布数据。curl -X POST \
http://0.0.0.0:5000/ \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Postman-Token: af380f7a-42a8-cfbb-9177-74bb348ce5ed' \
-d '{
"font_size": "47",
"sentences": [
"你好",
"sample sentence1",
"sample sentence2",
"sample sentence3",
"sample sentence4",
"sample sentence5",
"sample sentence6",
"sample sentence7",
"sample sentence8",
"sample sentence9"
]
}'
当我收到来自 request.data
的 json 数据后,我将其转换为 json 格式。实际上,request.data
是一个 str
类型。
json_data = json.loads(request.data)
那么我需要使用
json_data
来格式化一个字符串。subtitles.format(**json_data)
我遇到了一个错误。
如何解决?谢谢提前。UnicodeEncodeError: 'ascii'编解码器无法对0-1位置的字符进行编码:该编号不在128的范围内
编辑
subtitles
是从文件中读取的。
subtitles_file = "{path}/templates/sorry/subtitles.ass".format(path=root_path)
with open(subtitles_file, 'r') as file:
subtitles = file.read()
使用Python 2还是Python 3
我使用的是Python 2,但出现了这个错误。然而,Python 3可以自动处理此问题。因此,请享用Python 3。
subtitles
定义在哪里?尝试将其编码为 Unicode 字符串,然后进行格式化。 - sshashank124