在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Python/ 'builtin_function_or_method' object has

'builtin_function_or_method' object has no attribute 'translate'

1.在執(zhí)行await cur.execute(sql, args)時(shí),報(bào)錯(cuò)AttributeError: 'builtin_function_or_method' object has no attribute 'translate'

這里的代碼是根據(jù)廖雪峰的python教程寫(xiě)的實(shí)戰(zhàn)代碼,在進(jìn)行用戶注冊(cè)功能測(cè)試執(zhí)行保存時(shí)報(bào)錯(cuò)

2.代碼

async def execute(sql,args,autocommit=True):
    log(sql)
    async with __pool.get() as conn:
        if not autocommit: # 如果不是自動(dòng)提交
            await conn.begin()
        try:
            async with conn.cursor(aiomysql.DictCursor) as cur:
                sql = sql.replace('?', '%s')
                await cur.execute(sql, args)
                affected = cur.rowcount # 獲取sql語(yǔ)句影響的行數(shù)
            if not autocommit:
                await conn.commit()
        except BaseException as e:
            print('e: ',e)
            if not autocommit:
                await conn.rollback()
            raise
        return affected

3.報(bào)錯(cuò)信息

INFO:root:call with args: {'email': 'dd@qq.com', 'name': 'dd', 'passwd': 'f23ab4e297b7b5632c7bd9c816281802ea5c51cf'}
INFO:root:SQL: select `id`, `email`, `passwd`, `admin`, `name`, `image`, `create_at` from `users` where email=?
INFO:root:rows returned: 0
INFO:root:SQL: insert into `users`(`email`, `passwd`, `admin`, `name`, `image`, `create_at`, `id`) values(?,?,?,?,?,?,?)
e:  'builtin_function_or_method' object has no attribute 'translate'
ERROR:aiohttp.server:Error handling request
Traceback (most recent call last):
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\aiohttp\web_protocol.py", line 385, in start
    resp = await self._request_handler(request)
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\aiohttp\web_app.py", line 338, in _handle
    resp = await handler(request)
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\aiohttp\web_middlewares.py", line 88, in impl
    return await handler(request)
  File "D:/Python/awesome-python3-webapp/www/app.py", line 38, in logger
    return (await handler(request))
  File "D:/Python/awesome-python3-webapp/www/app.py", line 58, in response
    r = await handler(request)
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\aiohttp\web_urldispatcher.py", line 111, in handler_wrapper
    result = await result
  File "D:\Python\awesome-python3-webapp\www\coroweb.py", line 135, in __call__
    r = await self._func(**kw)
  File "C:\Python36\lib\asyncio\coroutines.py", line 225, in coro
    res = yield from await_meth()
  File "D:\Python\awesome-python3-webapp\www\handlers.py", line 150, in api_register_user
    await user.save()
  File "D:\Python\awesome-python3-webapp\www\orm.py", line 235, in save
    rows = await execute(self.__insert__, args)
  File "D:\Python\awesome-python3-webapp\www\orm.py", line 52, in execute
    await cur.execute(sql, args)
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\aiomysql\cursors.py", line 238, in execute
    query = query % self._escape_args(args, conn)
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\aiomysql\cursors.py", line 197, in _escape_args
    return tuple(conn.escape(arg) for arg in args)
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\aiomysql\cursors.py", line 197, in <genexpr>
    return tuple(conn.escape(arg) for arg in args)
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\aiomysql\connection.py", line 366, in escape
    return escape_item(obj, self._charset)
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\pymysql\converters.py", line 27, in escape_item
    val = encoder(val, mapping)
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\pymysql\converters.py", line 118, in escape_unicode
    return u"'%s'" % _escape_unicode(value)
  File "D:\Python\awesome-python3-webapp\venv\lib\site-packages\pymysql\converters.py", line 73, in _escape_unicode
    return value.translate(_escape_table)
AttributeError: 'builtin_function_or_method' object has no attribute 'translate'

來(lái)來(lái)來(lái),各位大神看一看:)

回答
編輯回答
涼心人

d:Anaconda3libsite-packagespymysqlconnections.py in escape(self, obj, mapping)

810                 ret = "_binary" + ret
811             return ret

--> 812 return converters.escape_item(obj, self.charset, mapping=mapping)

813
814     def literal(self, obj):

d:Anaconda3libsite-packagespymysqlconverters.py in escape_item(val, charset, mapping)

 25         val = encoder(val, charset, mapping)
 26     else:

---> 27 val = encoder(val, mapping)

 28     return val
 29

d:Anaconda3libsite-packagespymysqlconverters.py in escape_unicode(value, mapping)

116
117 def escape_unicode(value, mapping=None):

--> 118 return u"'%s'" % _escape_unicode(value)

119
120 def escape_str(value, mapping=None):

d:Anaconda3libsite-packagespymysqlconverters.py in _escape_unicode(value, mapping)

 71     Value should be unicode
 72     """

---> 73 return value.translate(_escape_table)

 74
 75 if PY2:

AttributeError: 'builtin_function_or_method' object has no attribute 'translate'

碰到了一樣的問(wèn)題,抱歉我也還沒(méi)有解決,搜索到了你的問(wèn)題,但是沒(méi)有發(fā)現(xiàn)答案,這個(gè)報(bào)錯(cuò)沒(méi)辦法知曉代碼哪里出現(xiàn)了紕漏

2017年7月2日 18:41