2011-09-13 3 views
0

CGI를 사용하여 스크립트에 보내는 목록 개체가 있습니다. 목록은 HTML 양식의 숨겨진 필드를 사용하여 전송됩니다. my_list = form.getlist [ 'name_of_hidden_field']를 사용하여 수신 스크립트에서 객체를 추출하면 목록은 원하는 목록이 아닌 my_list의 첫 번째 요소에 하나의 큰 텍스트 문자열로 저장됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?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

좋은 제안. 감사! –

관련 문제