2011-09-13 9 views
0

CGIを使用してスクリプトに送信するリストオブジェクトがあります。このリストは、HTMLフォームの隠しフィールドを使用して送信されています。 my_list = form.getlist ['name_of_hidden_​​field']を使用して受信スクリプトでオブジェクトを抽出すると、リストは必要なリストではなく、my_listの最初の要素に1つの大きなテキスト文字列として格納されます。私は間違って何をしていますか?CGI経由でPythonリストオブジェクトがテキスト文字列として到着する

# snippet of code from the script with the HTML 
my_list = ['string1', 'string2', 'string3] 
print '<form name="input" action="my_script.py">' 
print '<input type="hidden" name="my_list" value="%s">' % (my_list,) 
print '<input type="submit" name="submit" value="Submit" />' 
print "</form>" 

# snippet of code from my_script.py 
my_list = form.getlist('my_list') 

# what I'm seeing in my_script.py 
>>>print my_list 
["['string1', 'string2', 'string3']"] 

ありがとうございます。

my_list = ['string1', 'string2', 'string3'] 
print '<form name="input" action="my_script.py">' 
for element in my_list: 
    print '<input type="hidden" name="my_list" value="%s">' % (cgi.escape(element),) 
print '<input type="submit" name="submit" value="Submit" />' 
print "</form>" 
+0

'ast.literal_eval' – JBernardo

答えて

1

あなたは要素を取得するためにgetlistに同じ名前で異なるinput Sの束としてのリストを送信する必要があります。

import ast 

my_list = "['string1', 'string2', 'string3']" 
my_new_list = ast.literal_eval(my_list) 
print my_new_list 
+0

ありがとう:

は使用戻ってそれを変換するには!私はこれが新人の間違いだと思うが、本当に助けに感謝している。 –

1

文字列にリストを向けるだろうCGI経由で送信:

+0

素晴らしい提案。ありがとう! –

関連する問題