Python只更改lis中某些项的格式

2024-06-08 10:31:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个清单:

lst = ['3:44:44', '1.', '0', '2P', 'ri', 'NULL', 'fs']

我用这段代码把它转换成这种格式(因为我要把它插入一个mysql表):

"'{}'".format("','".join(lst))

输出:

'3:44:44','1.','0','2P','ri','NULL','fs'

这几乎正是我想要的,只是我不想在引号中插入NULL(如果它以引号形式出现,那么mysql将其解释为0,但我需要将其插入为NULL)。我也有很多列表,我需要确保NULL不在引号中,但其他的都在引号中。我该怎么做?你知道吗

我还尝试使用python的None而不是NULL,但是当我需要将格式从列表更改为逗号分隔的值时,python不喜欢NoneType。你知道吗


Tags: 代码noneformat列表格式mysqlfsnull
3条回答

如果您将它作为字符串插入,为什么不忽略“Null”呢。所以输入像

lst = ['3:44:44', '1.', '0', '2P', 'ri', 'NULL', 'fs'].

"'{}'".format("','".join([x if x!='NULL' else '' for x in lst]))

输出应为

"'3:44:44','1.','0','2P','ri','','fs'"

它应将“”读取为空值或null。你知道吗

肾盂通畅道:

In [41]: def quote_item(item):
    ...:     if item == "NULL":
    ...:         return item
    ...:     else:
    ...:         return "'{}'".format(item)
    ...:   

In [42]: result = ",".join(quote_item(item) for item in lst)

In [43]: print(result)
'3:44:44','1.','0','2P','ri',NULL,'fs'

也许这也有用:

>>> lst = ['3:44:44', '1.', '0', '2P', 'ri', 'NULL', 'fs']
>>> print ("'{}'".format("','".join(lst)).replace("'NULL'", 'NULL'))
'3:44:44','1.','0','2P','ri',NULL,'fs'

相关问题 更多 >