rel*_*ima 2 python sql sqlite null zero
这个功能:
for i in Selection:
cursor.execute(Query)
ydata[i] = [int(x[0]) for x in cursor.fetchall()]
Run Code Online (Sandbox Code Playgroud)
提出:
ValueError: invalid literal for int(): NULL if a null value is found.
Run Code Online (Sandbox Code Playgroud)
如何使我的查询返回零而不是空值,以便我可以解决这个问题?(我正在绘制数据,因此我无法在select语句中添加"is not null".
您可以在查询中使用case语句访问Python之前解决此问题:
CASE WHEN FIELD_NAME IS NULL THEN 0 ELSE FIELD_NAME END,
Run Code Online (Sandbox Code Playgroud)
开始编辑
其他SQL变体做的不同(取自其他答案):
COALESCE(FIELD_NAME, 0)
Run Code Online (Sandbox Code Playgroud)
要么
IFNULL(FIELD_NAME, 0)
Run Code Online (Sandbox Code Playgroud)
结束编辑
或者在列表comp中处理它(假设NULL是预定义的对象或常量):
ydata[i] = [(int(x[0]) if x[0] != NULL else 0) for x in cursor.fetchall()]
Run Code Online (Sandbox Code Playgroud)
或者创建客户转换功能:
def field_to_int(val):
if val == NULL:
return 0
else:
return int(val)
for i in Selection:
cursor.execute(Query)
ydata[i] = [field_to_int(x[0]) for x in cursor.fetchall()]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2069 次 |
| 最近记录: |