ai didi

python - 类型错误 : argument 1 must be a string or unicode object

转载 作者:太空宇宙 更新时间:2023-11-04 02:51:56 24 4
gpt4 key购买 nike

使用这个查询:

04/25/2017 00:42:28.180 INFO (u"UPDATE posts SET translated_text='Unroll.me CEO dice que es "desgarrador" que los usuarios se molesten Unroll.me vendi\xf3 sus datos de correo electr\xf3nico anonimizado a Uber', detected_language='en' WHERE post_id=2", u'Unroll.me CEO dice que es "desgarrador" que los usuarios se molesten Unroll.me vendi\xf3 sus datos de correo electr\xf3nico anonimizado a Uber')

使用 psycopg2,当我使用:cur.execute(query) 我得到:

TypeError: argument 1 must be a string or unicode object

使用查询和传递 unicode 值的最佳选择是什么。目前我已经参数化了 SQL 查询并传递了“u”。

return u"UPDATE posts SET translated_text='%s', detected_language='%s' WHERE post_id=%s;" % (
translation, detected_language['language'], str(post_id))

我也添加了,但没有任何区别:

import psycopg2.extensions

psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
psycopg2.extensions.register_type(psycopg2.extensions.UNICODEARRAY)

最佳答案

该日志显示的是 unicode 字符串的元组,而不是 unicode 字符串。在执行检查之前尝试记录 query 的类型。

记录参数化查询的首选方式是:

query = u"UPDATE posts SET translated_text='%s', detected_language='%s' WHERE post_id=%s;"
vars = translation, detected_language['language'], str(post_id) # tuple
cur.execute(query, vars)

您可能还希望将 vars 的字符串显式转换为 unicode,而不是依赖于此隐式完成。例如。

vars = translation, detected_language['language'].decode("utf8"), str(post_id).decode("utf8")

关于python - 类型错误 : argument 1 must be a string or unicode object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43604847/

24 4 0
文章推荐: html - z-index 值不适用于元素?
文章推荐: Javascript - 动态转换js包括数组
文章推荐: 在 C 中的指针数组中搜索值的编译器依赖性
文章推荐: javascript - 将 "map"与 Promise 结合使用会返回有序和无序结果
太空宇宙
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com