我使用JSON格式从NHTSA 中提取数据。然后,我将从这些数据和一些其他源创建一个命名元组,并将其作为一个记录插入到MySQL数据库中。
NHTSA 使用''指定一个null值,该值对于数据库中的这个特定列来说不是一个可接受的值。该列只允许使用float数据类型。
在创建我的命名元组时,如果返回一个特定的值,是否有一种替代None的方法?也就是说,如果API调用返回'',那么使用None代替?
返回的错误为
在执行语句时向MySQL表错误插入对象失败:第1行
中的列‘权重’数据被截断
发布于 2019-09-25 08:23:05
元组是不可变的,因此您需要创建一个新的元组。
下面是一个示例
old = (1,2,'ABC','','','','text')
new = tuple(None if x == '' else x for x in old)输出
现在,new包含:
(1, 2, 'ABC', None, None, None, 'text')有关更多信息,请参阅this线程
发布于 2020-01-23 17:38:47
要以更简单的方式替换namedtuple / NamedTuple中的一个特定字段值,可以使用_replace()方法。
Point = namedtuple('Point', 'x,y')
p = Point(x=11, y=22)
p = p._replace(x=33)
print(p)它将印刷:
Point(x=33, y=22)_replace()用其值替换使用关键字参数指定的字段,并使用该值返回一个新的namedtuple以及从旧namedtuple复制的其余值。
https://stackoverflow.com/questions/58092193
复制相似问题