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

如何处理BaseHTTPRequestHandler传输字典时的URL编码与JSON解析问题?

解决URL编码字符串转JSON的问题

核心处理步骤

服务器收到的是URL编码后的字符串,需按以下两步转换为JSON格式:

  1. 导入依赖模块
import urllib.parse
import json
  1. 解码URL编码内容
    用urllib.parse.unquote()还原原始JSON字符串:
decoded_json_str = urllib.parse.unquote(data)
# 处理后得到:{"ID": {"type": "title", "search": "test"}}
  1. 解析为Python字典
    通过json.loads()将字符串转成可操作的字典:
json_dict = json.loads(decoded_json_str)
# 最终结果:{'ID': {'type': 'title', 'search': 'test'}}

关于decode报错的说明

你调用data.decode("utf-8")报错,是因为data已经是Python的Unicode字符串(不是字节类型),无需再做UTF-8解码。URL编码是HTTP表单数据的特定编码规则,和字节解码完全是两回事,必须用urllib.parse.unquote()处理。

客户端优化建议(可选)

如果客户端由你控制,建议直接发送JSON字符串并设置请求头,避免URL编码环节:

# 客户端发送示例
import json
from http.client import HTTPConnection

conn = HTTPConnection("你的服务器地址")
payload = json.dumps({"ID": {"type": "title", "search": "test"}})
conn.request("POST", "/目标路径", payload, headers={"Content-Type": "application/json"})
response = conn.getresponse()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:52:06