我正在编写一个基于 http.server(使用 Python-3)的非常简单的 http 服务器
客户端应该通过 POST 发送一个 json 对象。
payload={'text': 'bi ba buzemann!',
'nouns': ['streetlight', 'situation'],
'states': ['solid', 'fluid']
}
requests.post(url, data=payload)
这很好地到达了服务器,但是以序列化的形式出现
def do_POST(self:
length = self.headers['content-length']
data = self.rfile.read(int(length))
# b'states=solid&states=fluid&nouns=oracle&text=bi+ba+buzemann%21'
现在我的问题是:如何将这个 urlencoded 结果转回字典(或中间 JSON)?
我是否必须手动执行此操作,如:
for x in str(r).split('&'):
y,z=x.split('=')
if not y in d:
d[y]=[]
d[y]+=[urllib.parse.unquote_plus(z)]
或者在一些通用模块中是否有一些经过良好调试的功能可用?
请您参考如下方法:
如果您可以更改请求,则以 JSON 格式发送:
import json
payload={'text': 'bi ba buzemann!',
'nouns': ['streetlight', 'situation'],
'states': ['solid', 'fluid']
}
requests.post(url, data=json.dumps(payload))
