我有这样的列表:
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'