如何解析通过POST收到的application / x-www-form-urlencoded

时间:2017-07-09 05:46:17

标签: python json django

我正在编写一个django webhook,用于通过CFontPropertyPage::CFontPropertyPage() { // m_font should be a class member ; what about font? m_font = font; NSFontManager *manager = [NSFontManager sharedFontManager]; // fontPanel needs a capital P NSFontPanel *panel = [manager fontPanel:true]; } 以我认为的POST格式发送数据的服务。示例application/x-www-form-urlencoded如下所示:

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处理此问题。我被困在这一点,所以非常感谢帮助。

1 个答案:

答案 0 :(得分:9)

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)。