如何解析通过POST接收的URL编码数据

2024-06-24 11:58:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个通过URL编码的POST发送数据的服务编写django webhook。示例POST如下所示:

POST id=a5f3ca18-2935-11e7-ad46-08002720e7b4
 &originator=1123456789
 &recipient=1987654321
 &subject=MMS+reply
 &body=View+our+logo
 &mediaUrls[0]=https://storage.googleapis.com/mms-assets/20170424/a0b40b77-30f8-4603-adf1-00be9321885b-messagebird.png
 &mediaContentTypes[0]=image/png
 &createdDatetime=2017-04-24T20:15:30+00:00

我知道如何解析json,但我以前从未遇到过这种格式。关于如何通过POST处理这个问题,似乎没有任何有用的教程。我被困在这一点上,所以非常感谢您的帮助


Tags: djangoidurl示例编码pngwebhookpost
1条回答
网友
1楼 · 发布于 2024-06-24 11:58:00

Python 2:

>>> from urlparse import parse_qs
>>> parse_qs('foo=spam&bar=answer&bar=42')
{'foo': ['spam'], 'bar': ['answer', '42']}

Python 3:

>>> from urllib.parse import parse_qs
>>> parse_qs('foo=spam&bar=answer&bar=42')
{'foo': ['spam'], 'bar': ['answer', '42']}

python 2/3:

>>> from six.moves.urllib.parse import parse_qs

UPD

还有一个parse_qsl函数,它返回两个项目元组的列表,如

>>> parse_qsl('foo=spam&bar=answer&bar=42')
[('foo', 'spam'), ('bar', 'answer'), ('bar', '42')]

将这样的列表传递给dict()构造函数非常合适,这意味着您得到的dict每个名称只有一个值。请注意,姓氏/值对优先于相同名称的早期出现(请参见库参考中的dict

相关问题 更多 >