如果Python没有三元条件运算符,是否可以使用其他语言结构模拟一个?
背景是我从 JSON API 获取数据,其中许多字段是可选的,我想要数据库中的大部分字段。当特定字段不可用时,我希望将空字符串 ( ""
) 写入数据库。
目前我一直在做:
if jsonobject.what_i_look_for:
dbstring = jsonobject.what_i_look_for
else:
dbstring = ""
Run Code Online (Sandbox Code Playgroud)
然后将dbstring插入到数据库中。然而,我现在得到了更多这些字段,我想要一个更清晰的代码,而不是一个包含大约 80% 的 if 语句的函数。
我找到了if-shorthands和this shorthand 来检查变量是否为空,但两者似乎都不能直接作为字符串工作。我已经print()
在交互式 python 3.5.2 shell 中对此进行了测试:
>>> print(testvar or "")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'testvar' is not defined
>>> print(testvar if testvar else "")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'testvar' is not defined
Run Code Online (Sandbox Code Playgroud)
这: …
我正在尝试以简写形式编写if else语句。如果不是,则检查一个值,如果尚未达到一个值,则递增;否则减去一个设定的数字。
如果可以的话,这是可行的,但是尝试将其作为速记版本并被卡住。
在这种情况下,您不能使用-=或+ =的问题吗?任何了解的帮助将不胜感激。
尝试过day- = 7,如果day == 7,否则day + = 1-但知道这是错误的,因为已经在左侧引用了var。
如果还可以的话
day = 5
if day == 7:
day-=7
else:
day+=1
Run Code Online (Sandbox Code Playgroud)
尝试以简写形式编写此代码,但在正确的日子+ = 1时出现错误,因为这显然是错误的。寻找有关如何在day!= 7时增加日值的建议
day = 5
day-=7 if day == 7 else +=1
Run Code Online (Sandbox Code Playgroud)
+ = 1引发错误。
期望一天是6