You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何在HTTP POST响应中获取非转义字符

解决GraphQL API返回结果中Unicode转义字符显示问题

你遇到的问题核心在于json.dumps()的默认行为:当ensure_ascii=True(默认值)时,所有非ASCII字符会被自动转换为\uXXXX格式的Unicode转义序列。以下是具体解决方案:

方案1:修改json.dumps()的ensure_ascii参数

直接在json.dumps()中设置ensure_ascii=False,让输出保留原始Unicode字符:

import json
import requests

response = requests.post(url, json={'query': query})
data = response.json()
# 设置ensure_ascii=False,避免非ASCII字符被转义
result = json.dumps(data, indent=2, ensure_ascii=False)

方案2:确保响应编码正确

如果API响应的Content-Type头未正确声明编码,requests可能会用错误的编码解析响应,导致字符异常。可以手动指定响应编码:

import json
import requests

response = requests.post(url, json={'query': query})
# 手动指定响应编码为UTF-8
response.encoding = 'utf-8'
data = response.json()
result = json.dumps(data, indent=2, ensure_ascii=False)

为什么curl能正常显示?

curl会直接按照响应的编码解析并输出原始字符,不会像json.dumps()默认那样对非ASCII字符进行转义处理,因此能显示实际字符。

内容的提问来源于stack exchange,提问作者Georgy Nevsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:12:04