【问题标题】:ast.literal_eval - loop over string elements in a listast.literal_eval - 遍历列表中的字符串元素
【发布时间】:2017-12-22 08:31:27
【问题描述】:

目标:我想从下面的request.POST 中提取map 键中的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 与上面相同。

【问题讨论】:

    标签: python django list tuples


    【解决方案1】:

    查询字符串常用于表示单值键和多值键,所以Django的QueryDictrequires that you specify the type you’re looking for

    position = list(map(ast.literal_eval, markers.getlist('map')))
    

    【讨论】:

    • 正是我想要的!谢谢百万:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多