'packages_list'的HTTP响应头返回以下内容,这是一个列表查找字符串。我如何将其转换为实际列表?我已经尝试将字符串类型转换为无法正常工作的列表。我并不热衷于寻找,更换或剥离。一旦我有了列表,我就会创建一个带有按钮的窗体,其中包含列表中每个项目的文本。任何帮助表示赞赏
我正在使用IronPython 2.6(是的,我知道它的旧版本但由于向后兼容原因而无法移动)
['Admin', 'MMX_G10_Asia', 'MMX_G10_London', 'MMX_G10_Readonly', 'MMX_Credit_Readonly', 'MMX_Govies_ReadOnly']
httpConn = httplib.HTTPConnection(base_server_url)
httpConn.request("POST", urlparser.path, params)
response = httpConn.getresponse()
headers = dict(response.getheaders())
print headers['packages_list']
答案 0 :(得分:5)
最简单的方法,恕我直言,将使用literal_eval
:
>>> s = "['Admin', 'MMX_G10_Asia', 'MMX_G10_London', 'MMX_G10_Readonly', 'MMX_Credit_Readonly', 'MMX_Govies_ReadOnly']"
>>> s
"['Admin', 'MMX_G10_Asia', 'MMX_G10_London', 'MMX_G10_Readonly', 'MMX_Credit_Readonly', 'MMX_Govies_ReadOnly']"
>>> from ast import literal_eval
>>> literal_eval(s)
['Admin', 'MMX_G10_Asia', 'MMX_G10_London', 'MMX_G10_Readonly', 'MMX_Credit_Readonly', 'MMX_Govies_ReadOnly']
答案 1 :(得分:1)
您可以检查字符串是否是有效的python类型
>>> import ast
>>> s = "['Admin', 'MMX_G10_Asia', 'MMX_G10_London', 'MMX_G10_Readonly', 'MMX_Credit_Readonly', 'MMX_Govies_ReadOnly']"
>>> ast.literal_eval(s)
['Admin', 'MMX_G10_Asia', 'MMX_G10_London', 'MMX_G10_Readonly', 'MMX_Credit_Readonly', 'MMX_Govies_ReadOnly']
答案 2 :(得分:1)
另一种选择是将此字符串转换为JSON格式,然后在以下位置读取:
import json
s = headers['packages_list'].replace("'", '"')
result = json.loads(s)
答案 3 :(得分:0)
丑陋,但我会跟下面的。再次感谢大家的帮助!
headers = dict(response.getheaders())
print headers['packages_list']
result = headers['packages_list'].replace("'",'')
result = result.replace("[","")
result = result.replace("]", "")
print result
package_list = result.split(",")
print "the 2nd item in teh list is ", package_list[1]