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(如果是引号中的null,则mysql将其解释为0,但我需要将其插入为null)。我还有许多列表,需要确保零不在引号中,而是其他所有列表。我该怎么做?

我还尝试使用python的nots而不是" null",但是当我需要将格式从列表更改为逗号分隔的值时,Python不喜欢非电视。

也许这也有效:

>>> 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'

如果将其插入字符串,为什么不忽略" 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'"

它应该读取"为空值或空值。

pythonic clear方法:

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'

相关内容

  • 没有找到相关文章

最新更新