如何将包含单引号和双引号值的Python列表转换为所有双引号值

时间:2019-04-16 08:31:13

标签: python-3.x postgresql

我想将包含单引号和双引号的python列表转换为所有带双引号的值 我想这样做是因为我想将该列表转换为元组,而不是将该元组输出提供给PostgreSQL查询

我尝试了JSON转储方法,但由于无法将JSON列表转换为元组而无法将元组作为postgresql查询的输出,因此无法正常工作

list = ['parrot', 'dog', "leopard's", 'cat', "zebra's"]

希望输出为:-

list = ["parrot", "dog", "leopard's", "cat", "zebra's"]

3 个答案:

答案 0 :(得分:0)

对于python来说两者没有区别:

>>> list = ['parrot', 'dog', "leopard's", 'cat', "zebra's"]
>>> list2 = ["parrot", "dog", "leopard's", "cat", "zebra's"]
>>> list == list2
True

您可以将它们转换为元组,并且它们仍然相同:

>>> tuple(list) == tuple(list2)
True

使用""''只是字符串“ constructor”的表示形式,并且只有在字符串中包含其他引号的情况下它才会更改。

答案 1 :(得分:0)

单引号或双引号无关紧要,但是如果使用已经具有默认值的名称,则会遇到麻烦。

list_1 = ['parrot', 'dog', "leopard's", 'cat', "zebra's"]
tuple_new = tuple(list_1)

这部分代码可以帮助您从列表中创建一个元组。

>>>list_1
['parrot', 'dog', "leopard's", 'cat', "zebra's"]
>>>tuple(list_1)
('parrot', 'dog', "leopard's", 'cat', "zebra's")

反正你会得到一个字符串元组。

如果您尝试使用python方式创建它,则会返回以下内容:

>>list_1
['parrot', 'dog', "leopard's", 'cat', "zebra's"]

>>'leopard\'s'
"leopard's"

>>'parrot'
'parrot'

>>"parrot"
'parrot'

我找到了实现的方法。

>>list1 = ['parrot', 'dog', "leopard's", 'cat', "zebra's"]
>>str1 = json.dumps(list1)
>>str1 = str1.replace("[", "")
>>str1 = str1.replace("]", "")
>>list2 = str1.split(", ")
>>list2
['"parrot"', '"dog"', '"leopard\'s"', '"cat"', '"zebra\'s"']

答案 2 :(得分:0)

根据您的建议

>>> list = ['parrot', 'dog', "leopard's", 'cat', "zebra's"]
>>> import json
>>> print(json.dumps(list))
["parrot", "dog", "leopard's", "cat", "zebra's"]