我使用python2.7和psycopg2连接到postgresql
我从一个包含'Aéropostale'
这样的字符串的源中读取了一堆数据。然后我把它存储在数据库中。但是,在postgresql中它的结尾是'A\u00e9ropostale'
。但我想把它作为“Aéropostale”存储起来。在
postgresql数据库编码为utf-8。在
请告诉我如何存储实际的字符串“Aéropostale”。 我怀疑这个问题是在python中发生的。请指教。在
编辑:
这是我的数据源
response_json = json.loads(response.json())
通过服务呼叫获得响应,如下所示:
^{pr2}$根据以上数据,我的目标是构建一个价值建议价值并存储在postgresql json数据类型列中。所以我要存储的python等价列表是
py_list = ["Handmade", "Abercrombie & Fitch", "A\u00e9ropostale", "Ann Taylor"]
然后使用json.dumps文件()
json_py_list = json.dumps(py_list)
最后,为了插入,我使用psycopg2.cursor()和mogrify()
conn = psycopg2.connect("connectionString")
cursor = conn.cursor()
cursor.execute(cursor.mogrify("INSERT INTO table (columnName) VALUES (%s), (json_py_list,)))
如前所述,使用上述逻辑,带有特殊字符(如è)的字符串被存储为utf8字符代码。 请指出我的错误。在
json.dumps
默认情况下转义非ASCII字符,因此其输出可以在非Unicode安全的环境中工作。可以使用以下方法关闭此选项:现在,您将得到UTF-8编码的字节(除非您也用
encoding=
更改它),因此您需要确保您的数据库连接使用的是这种编码。在一般来说,这不会有任何区别,因为这两种形式都是有效的JSON,即使关闭了
ensure_ascii
,仍然有一些字符得到了\u
编码。在相关问题 更多 >
编程相关推荐