python将unicode转换为可读ch

2024-09-29 22:21:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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字符代码。 请指出我的错误。在


Tags: 数据字符串py数据库jsonresponsepostgresqlcursor
1条回答
网友
1楼 · 发布于 2024-09-29 22:21:30

json.dumps默认情况下转义非ASCII字符,因此其输出可以在非Unicode安全的环境中工作。可以使用以下方法关闭此选项:

json_py_list = json.dumps(py_list, ensure_ascii=False)

现在,您将得到UTF-8编码的字节(除非您也用encoding=更改它),因此您需要确保您的数据库连接使用的是这种编码。在

一般来说,这不会有任何区别,因为这两种形式都是有效的JSON,即使关闭了ensure_ascii,仍然有一些字符得到了\u编码。在

相关问题 更多 >

    热门问题