我正在开发一个Flask应用程序,我需要解码url的查询参数,以便在我的函数中使用它们。我想知道转换类似列表字段的最佳做法是什么。目前我在使用urllib.urlencode()
将查询发送到服务器之前对其进行编码,以创建类似json的字符串,该字符串将使用此函数进行解码:
def jsonToDict(param):
try:
jstring = json.loads(json.dumps(param)) #this get me a json formatted string
item = literal_eval(jstring) # this converts it into a dict
except:
return None
else:
return item
field = request.args.get('field')
variable = jsonToDict(field)
返回字典。如果我想发送一个简单的名称列表:['a','b','c']
我可以使用上面的函数与url写成这样:
http://mydomain/query?var=['a'%2C+'b'%2C+'c']
虽然有效,但看起来很笨重。
我的问题是:建议发送如下查询:
http://mydomain/query?var=a,b,c
如果是这样,从中创建元组/列表的正确方法是什么?使用数字(http://mydomain/query?var=1,2,3
)我可以很容易地使用ast.literal_eval()
来获取我正在寻找的元组,但是使用字符和字符串它似乎没有办法......任何建议?