如何将request.args从字符串转换为列表



我有这样的url:

http://0.0.0.0:5000/test?id=00000&coords=[55.530974,37.522081]

还有代码的一部分:

id = request.args.get('id')
>'00000'
coords = request.args.get('coords')
> '[55.530974,37.522081]'

我需要的coords不是像字符串,而是像列表[55.5530974,37.522081]

有转换它的解决方案吗?或者换一种方式制作?

非常感谢

尝试:

>>> [float(n) for n in coords[1:-1].split(",")]
[55.530974, 37.522081]

[1:-1]切片以忽略[]

服务器从python运行时之外的url接收coords。正因为如此,它总是以字符串的形式出现。唯一的方法是将字符串解析为一个浮点数组。您可以:

  • coords查询参数拆分为两个不同的参数,分别将它们解析为浮点值,然后将它们组合成一个数组
  • 创建一个解析数组的函数

我推荐第一个;像这样发送坐标是很常见的:?long=1.11&lat=2.22

执行一些字符串操作,如strip()split(),并将其转换为list
coords = '[55.530974, 37.522081]'
coords = coords.strip('[')
coords = coords.strip(']')
l = list(map(float, coords.split(',')))
print(l)
[55.530974, 37.522081]

如果您不可能更改http请求的发出方式,并且您确信传递的坐标总是用逗号分隔,并且末尾有花括号,那么您可以通过以下方式将字符串转换为列表

coords = request.args.get("coords").strip()[1:-1].split(",")

最新更新