如何在HTTP请求负载中正确发送带变音符号的重音字符?
解决API发送特殊重音字符时显示Unicode转义的问题
你的问题出在json.dumps()的默认行为上——它会自动把非ASCII字符转换成\uXXXX格式的Unicode转义序列。要让Mock API直接收到带重音的原始字符,只需修改json.dumps()的参数:
在调用json.dumps()时添加ensure_ascii=False参数,同时保持encode("utf-8")的编码步骤(符合JSON的UTF-8编码要求)。
修改后的代码如下:
import string import http.client import datetime import json def apiSendFarmacia(idatencion,articulo,deviceid): now = datetime.datetime.now() conn = http.client.HTTPSConnection("apimocha.com") # 添加ensure_ascii=False参数 payload = json.dumps({ "idatencion": idatencion, "articulo": articulo, "timestamp": str(now), "deviceId": deviceid }, ensure_ascii=False).encode("utf-8") # 关键修改处 headers = { 'Content-Type': 'application/json' } conn.request("POST" ,"/xxxx/api2" , payload , headers) res = conn.getresponse() httpcode = res.status data = res.read() return httpcode
再次调用apiSendFarmacia(2222,"solución",2222)时,Mock API收到的JSON负载里就会显示原始的ó字符,而非\u00f3。
内容的提问来源于stack exchange,提问作者Andres Mora
相关产品推荐
相关产品推荐

