2017-07-09 11 views
1

POSTでデータを送信するサービスのdjango webhookは、application/x-www-form-urlencodedの形式で書いています。例POSTは以下を示しています。アプリケーションを解析する方法/ 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を解析する方法を理解するが、私は前にこのフォーマットを発生していません。 POSTでこれを処理する方法に関する有用なチュートリアルはありません。私はこの時点で立ち往生しているので、助けに感謝します。

+0

これはクエリ文字列です。この質問を確認してください。https://stackoverflow.com/questions/11912843/python-how-to-convert-a-query-string-to-json-string –

答えて

1

の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あり

I二項目のタプルのリストを返すのもparse_qsl機能、

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

のようにそれはあなたが名前ごとに1つの値を持つ辞書を得たことを意味し、dict()コンストラクタにそのようなリストを渡すことに非常に適しています。最後の名前/値のペアは、同じ名前の初期のものよりも優先されます(ライブラリ参照のdictを参照)。

関連する問題