我有一个程序,插入响应到MongoDB集合。有些问题需要多次回答。有多个回答的问题使用复选框,需要一个回答的问题使用单选按钮。
复选框的值存储在数组中,而单选按钮的值存储为字符串。我的问题是,如果用户选择了一个复选框,它会将其插入到DB中,但会通过错误产生多个响应。我怎样才能使我的代码接受列表和str基于什么是选择?
下面是我的示例代码
index.ts
questionAnswers: string | strong[]
submit.py
questionAnswers: Optional[str]
如何实现在索引中找到的相同逻辑。提交。py?
谢谢
假设我有两个不同选项的问题。例如:
问题1提问:"你是怎么知道我们公司的?"选项:['friends', 'radio', 'tv']上面的选项是一个复选框
问题2提问:"你能帮我吗?"选项:"是"否"它使用了一个单选按钮
每个选项都有一个点。我想把所有选项的分数加起来。因此,如果用户选择[friends, radio]和yes,我想检查所选内容是否在选项中,代码如下:
for index, question in enumerate(questions):
questionScore = question['options'].index(question['questionAnswers'])
与string | string[]
等价的Python类型是Union[str, List[str]]
。从Python 3.10开始(参见https://www.python.org/dev/peps/pep-0604/),您还可以执行str | List[str]
。
如果你遇到了运行时错误,你需要在运行时检查类型,例如:
def handle(question_answers: Union[str, List[str]]):
if isinstance(question_answers, list):
# do thing with list
elif isinstance(question_answers, str):
# do thing with str
else:
raise TypeError("somebody forgot to run mypy")