我有一个脚本,可以使用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端都可以使用解决方案。
答案 0 :(得分:0)
找到了解决方法。有点过时,但是可以用。将列表转换为字符串。像这样使用替换功能:
MyString = MyString.replace('"',"'")
然后使用该字符串。