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

如何访问urllib.parse.parse_qs返回字典中的POST表单字段数据?

问题原因

你用错了解析方法:urllib.parse.parse_qs 仅适用于解析 application/x-www-form-urlencoded 格式的请求体,也就是普通键值对拼接的格式(比如username=user1&password=passuser1)。你当前收到的是multipart/form-data格式的表单请求体,带有专属的分隔符边界,用parse_qs自然没法得到正确的键值对,输出的字典完全是错误解析后的乱码结果,没有正常的键值对应关系,自然没法通过d.get("username")拿到值。

正确解析方案

推荐直接用Python标准库内置的cgi模块处理,无需额外安装依赖,代码示例如下:

import cgi
import urllib.parse

# 直接解析multipart/form-data格式的wsgi请求
form = cgi.FieldStorage(
    fp=environ['wsgi.input'],
    environ=environ,
    keep_blank_values=True
)

# 直接获取对应字段的值,返回值已经是解码后的字符串
username = form.getvalue('username', '')
password = form.getvalue('password', '')
gender = form.getvalue('gender', '')

# 写入文件的逻辑可以直接复用
with open('myfile.txt', 'w') as f:
    print(f"username: {username}, password: {password}, gender: {gender}", file=f)

如果你的服务框架本身带有请求解析能力,也可以直接用框架提供的请求参数获取方法,不需要手动解析wsgi输入流。


内容的提问来源于stack exchange,提问作者Life after Guest

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:54:10