微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类型错误:需要字符串或字节格式的键

如何解决类型错误:需要字符串或字节格式的键

正在练习 API 测试,并尝试运行以下测试

def test_login_user(self):
    with self.app as client:
        with self.app_context():

            client.post('/register',data={'username':'test','password':'1234'})

            auth_response=client.post('/auth',data=json.dumps({'username':'test','password':'1234'}),headers={'content-type': 'application/json'})

            self.assertIn('access_token',json.loads(auth_response.data).keys())

错误告终:

错误追溯(最近一次调用):文件 “c:\python39\lib\unittest\case.py”,第 59 行,在 testPartExecutor 中 生成文件“c:\python39\lib\unittest\case.py”,第 593 行,运行中 self.callTestMethod(testMethod) 文件“c:\python39\lib\unittest\case.py”,第 550 行,callTestMethod method() 文件“C:\Users\Admin\Flask\app\RestAPI\tests\system\test_user.py”,第 28 行, 在 test_login_user 中 auth_response=client.post('/auth',File "C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\werkzeug\test.py",第 1016 行,邮寄 返回 self.open(*args,**kw) 文件 "C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask\testing.py",第 222 行,开放中 return Client.open( File "C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\werkzeug\test.py",970线,开放中 response = self.run_wsgi_app(environ.copy(),buffered=buffered) 文件 "C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\werkzeug\test.py",第 861 行,在 run_wsgi_app 中 rv = run_wsgi_app(self.application,environ,第 1096 行,在 run_wsgi_app 中 app_rv = app(environ,start_response) 文件“C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask\app.py”,行 2464,在呼叫 返回 self.wsgi_app(environ,start_response) 文件“C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask\app.py”,行 第 2450 章 response = self.handle_exception(e) File "C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask_restful_init.py",第 272 行,在 error_router 中 返回 original_handler(e) 文件“C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask\app.py”,行 1867 年,在 handle_exception 中 reraise(exc_type,exc_value,tb) 文件 "C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask_compat.py",第 39 行,再加注 提高值文件“C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask\app.py”,行 第2447章 response = self.full_dispatch_request() 文件“C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask\app.py”,行 1952 年,在 full_dispatch_request 中 rv = self.handle_user_exception(e) 文件 "C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask_restful_init.py",第 272 行,在 error_router 中 返回 original_handler(e) 文件“C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask\app.py”,行 1821,在 handle_user_exception 中 reraise(exc_type,第 39 行,再加注 提高值文件“C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask\app.py”,行 1950 年,在 full_dispatch_request 中 rv = self.dispatch_request() 文件“C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask\app.py”,行 1936 年,在 dispatch_request 中 返回 self.view_functionsrule.endpoint 文件 "C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask_jwt_init_.py",第 125 行,在 _default_auth_request_handler 中 access_token = jwt.jwt_encode_callback(identity) 文件“C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\flask_jwt_init.py”,第 70 行,在 _default_jwt_encode_handler 中 返回 jwt.encode(payload,secret,algorithm=algorithm,headers=headers) 文件 “C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\jwt\api_jwt.py”,行 55,在编码 return super(PyJWT,self).encode( File "C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\jwt\api_jws.py",line 98,在编码 key = alg_obj.prepare_key(key) File "C:\Users\Admin\Envs\MyStoreFW\lib\site-packages\jwt\algorithms.py",第 116 行,在 prepare_key 中 raise TypeError('Expecting a string- or bytes-formatted key.') TypeError: Expecting a string- or bytes-formatted key.

我探索了所有相关的解决方案,但未能解决问题。请帮忙

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。