目标:我想从map
密钥中提取request.POST
密钥中的longlat元组。
<QueryDict: {'map': ['(38.70053557156445, 149.81571853160858)', '(38.70060091643143, 149.8153966665268)'], 'csrfmiddlewaretoken': ###}>
问题:我使用ast.literal_eval
来提取元组,但不知何故只返回第二个元组。
markers = request.POST
position = ast.literal_eval(markers['map'])
我也尝试使用map
进行循环,但这会在元组括号上给出SyntaxError: unexpected EOF while parsing
。
for idx, val in enumerate(markers['map']):
position = ast.literal_eval(markers['map'][idx])
最后,我尝试了list(map(ast.literal_eval, markers['map']))
,但这会返回与上面相同的SyntaxError
。
答案 0 :(得分:1)
查询字符串通常用于表示具有单个值的键和具有多个值的键,因此Django的QueryDict
requires that you specify the type you’re looking for:
position = list(map(ast.literal_eval, markers.getlist('map')))