首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在创建一个名称元组时,如何替换一个值?

问在创建一个名称元组时,如何替换一个值?
EN

Stack Overflow用户
提问于 2019-09-25 06:19:48
回答 2查看 47关注 0票数 0

我使用JSON格式从NHTSA 中提取数据。然后,我将从这些数据和一些其他源创建一个命名元组,并将其作为一个记录插入到MySQL数据库中。

NHTSA 使用''指定一个null值,该值对于数据库中的这个特定列来说不是一个可接受的值。该列只允许使用float数据类型。

在创建我的命名元组时,如果返回一个特定的值,是否有一种替代None的方法?也就是说,如果API调用返回'',那么使用None代替?

返回的错误为

在执行语句时向MySQL表错误插入对象失败:第1行

中的列‘权重’数据被截断

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-25 08:23:05

元组是不可变的,因此您需要创建一个新的元组。

下面是一个示例

代码语言:javascript
复制
old = (1,2,'ABC','','','','text')

new = tuple(None if x == '' else x for x in old)

输出

现在,new包含:

代码语言:javascript
复制
(1, 2, 'ABC', None, None, None, 'text')

有关更多信息,请参阅this线程

票数 0
EN

Stack Overflow用户

发布于 2020-01-23 17:38:47

要以更简单的方式替换namedtuple / NamedTuple中的一个特定字段值,可以使用_replace()方法。

代码语言:javascript
复制
Point = namedtuple('Point', 'x,y')
p = Point(x=11, y=22)
p = p._replace(x=33)
print(p)

它将印刷:

代码语言:javascript
复制
Point(x=33, y=22)

_replace()用其值替换使用关键字参数指定的字段,并使用该值返回一个新的namedtuple以及从旧namedtuple复制的其余值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58092193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档