Python 如何处理在Flask中返回元组的视图函数?

Python 如何处理在Flask中返回元组的视图函数?,python,flask,Python,Flask,这个问题分为a部分和b部分,其中b是我试图实现的目标,但a是绊脚石 (a)我在React/Flask应用程序中有一个view函数,它返回一个包含三个浮点值的元组。此元组本身是从另一个函数调用返回的值 为了从view函数返回这个tuple作为响应,我首先尝试使用str(tuple)将其转换为字符串。在前端,它显示为文本元组,逗号分隔,(3.0、6.7、9.1)。然而,当我这样做的时候: return '{} {} {}'.format(value1, value2, value3) 我在前端得

这个问题分为a部分和b部分,其中b是我试图实现的目标,但a是绊脚石

(a)我在React/Flask应用程序中有一个view函数,它返回一个包含三个浮点值的元组。此元组本身是从另一个函数调用返回的值

为了从view函数返回这个tuple作为响应,我首先尝试使用
str(tuple)
将其转换为字符串。在前端,它显示为文本元组,逗号分隔,
(3.0、6.7、9.1)
。然而,当我这样做的时候:

return '{} {} {}'.format(value1, value2, value3) 
我在前端得到了字符串本身,没有tuple()和逗号分隔的值。所以这一部分的问题是,为什么按照第一种方法,对str进行强制转换不能以同样的方式工作


(b)最后,我的目标是,我需要从Flask中的view函数返回元组,这样我就可以在前端分别访问每个值,所以我是否最好尝试将元组转换为对象?如果是这样的话,我如何处理这里返回的元组来实现这一点呢?

据我所知,您在a部分的问题是: 为什么下面的代码

t = (3.0, 6.7, 9.1)
print(str(t))
print('{} {} {}'.format(3.0, 6.7, 9.1))
结果显示以下输出

(3.0, 6.7, 9.1)
3.0 5.0 7.0
因为你会期待

3.0 5.0 7.0
3.0 5.0 7.0
t是一个元组,因此是一个对象。python定义的str函数将t转换为表示对象的字符串。我不知道他们为什么那样设计函数。我只能猜测。不过,这确实很有道理。假设你不知道t是什么样子,也不知道它的类型。现在如果你调用str(t),看到3.0679.1,你可能会认为t是一个字符串“3.0679.1”。但实际上它是一个元组。根据输出你不能知道。使用括号,您将立即想到一个元组。因为没有人会手工打印括号和逗号

b部分: 视情况而定。可以将元组作为字符串返回。然后,您必须自己进行解析。不是最好的选择

您可以将其作为json字符串返回。 所以,创建一个字典

return {"value1": 3.0, "value2": 6.7, "value3": 9.1}
flask可能会立即将其转换为字符串,也许您必须使用json自己进行转换。这样,它将返回一个对象,并且在前端,您将能够使用以下方法提取值

response.value1

取决于前端的语言

谢谢@Sheradil。我认为对象必须有键-值对。为什么元组被视为对象?因为它可以有键,但不是必需的?或者说元组是一种可以保存对象的数据类型?当我说对象时,我指的是数据类型。我的错。元组是python拥有的4种基本数据类型之一。我不知道你说的“对象必须有键值对”是什么意思。dictionary数据类型有键和值。我指的是JS和其他语言意义上的对象,它们维护键-值对。不确定Python是否相同。迪克特似乎在做那项工作。