强制python对字符串使用'而不是“

时间:2019-10-01 03:10:22

标签: python sql postgresql psycopg2

我有一个脚本,可以使用psycopg2库将数据从一个数据库迁移到用python和sql编写的另一个数据库。

我从第一个数据库中检索了一个字符串,并将其存储在列表中以备后用,以便在我收集完所有需要的数据后可以将其放入第二个数据库中。

如果字符串中带有撇号,则python将使用“”表示字符串。问题是sql将“”解释为指定了列名,并为字符串指定了“”,而python将这两者都解释为字符串。我希望强制python使用撇号来表示字符串(或其他合适的解决方法)

Google尚未启用任何功能。甚至找不到提到当字符串中带有撇号时python将使用“”的事实。我曾考虑过用不同的字符替换字符串中的撇号,然后再将其转换回去,但这似乎很笨拙。

例如

MyString = 'it\'s'
MyList = [MyString]
print(MyList) # returns "it's"
print(MyList[0]) # returns it's

将新值插入数据库时​​,我就是将整个列表作为值插入。

INSERT INTO table VALUES MyList

这是错误出现的地方,因为字符串使用的是“”而不是“”。 在python或sql端都可以使用解决方案。

1 个答案:

答案 0 :(得分:0)

找到了解决方法。有点过时,但是可以用。将列表转换为字符串。像这样使用替换功能:

    MyString = MyString.replace('"',"'")

然后使用该字符串。