0

これを投稿しなければならないのは本当に馬鹿げていますが、私はPythonを初めて使用し、私が知っているPHPのようなものではありません。

1つ以上の変数を含むデータの文字列があります。例:

"var1=value1&var2=value2&var3=value3"

urllibを使用してPOSTを使用してこのデータをWebサーバーに送信する必要があります。

POSTデータを手動でフォーマットして送信することに問題はありませんが、複雑なコードを記述せずに、コードを使用してこれを行う方法を理解するのに問題があります。

split('&')を使用してこの文字列を配列に変更するのは非常に簡単ですが、それではどうでしょうか。

urllib.urlencodeを実行する前に、データを次の構文に変換する必要があるようです。

{"var1":"value1","var2":"value2","var3":"value3"}

任意の提案をいただければ幸いです!

4

2 に答える 2

2

Pythonには、クエリ文字列/URLで実行する必要のあるほとんどの操作用の関数があります。文字列を辞書に変えることができます(以下のように)

Python 2.7.3 (default, Aug  1 2012, 05:14:39) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> qs = "var1=value1&var2=value2&var3=value3"
>>> from urlparse import parse_qs
>>> parse_qs(qs)
{'var1': ['value1'], 'var3': ['value3'], 'var2': ['value2']}
>>> data_dict = parse_qs(qs)      
>>> import urllib
>>> post_data_str = urllib.urlencode(data_dict)
>>> post_data_str
'var1=%5B%27value1%27%5D&var3=%5B%27value3%27%5D&var2=%5B%27value2%27%5D'
于 2013-03-13T17:52:00.810 に答える
2

split('&') を使用して変数を分割し、結果のリストをループして、split('=') を使用して各変数とその個々の値を分割し、それらの値を空の辞書に挿入できます。何かのようなもの:

myDataString = "var1=value1&var2=value2&var3=value3"
mySplitData = myDataString.split('&')

import collections
myDict = collections.defaultdict(list)

for value in mySplitData:
    splitValue = value.split('=')
    myDict[splitValue[0]]

これはテストされていないコードであることに注意してください。これをテストして返信します。

編集コードをテストして更新しました。

于 2013-03-13T18:09:07.727 に答える