问题描述
Python词典的初学者在这里,
@app.route('/pokemon/original/<string:name>/',methods=['GET'])
def get_poke(name):
descrip_url = f"https://pokeapi.co/api/v2/pokemon-species/{name.lower()}"
r = requests.get(descrip_url)
json_blob = r.json()
flav_text = extract_descriptive_text(json_blob)
# clean_description = flav_text.replace("\n"," ")
d = {"name": name,"description": flav_text}
ordered_poke_list = OrderedDict(jsonify(d))
return ordered_poke_list
我要实现的目标:在字典中以以下格式显示键'name'
,后跟'description'
:
{'name': variable,'description': variable}
经过一些研究,我了解到Python中的Dictionary本质上是无序的,但是可以使用OrderedDict进行修改。我试图通过上面的代码来使用它。 我收到的错误:
TypeError: 'Response' object is not iterable
其他尝试:我也尝试过使用this stackoverflow问题的建议,并尝试使用dict
方法无效
d = dict(name=name,description=flav_text)
return jsonify(d)
错误:这将首先返回描述。
任何帮助将不胜感激
有用的信息:
extract_description_text:从PokeAPI中获取Pokemon描述
def extract_descriptive_text(json_blob,language='en',version= 'sword'):
text = ""
for f in json_blob['flavor_text_entries']:
if f['language']['name'] == language and f['version']['name'] == version:
text = f['flavor_text']
return text
跟踪:
Traceback (most recent call last):
File "/Users/swapneel/Library/Python/3.8/lib/python/site-packages/flask/app.py",line 2464,in __call__
return self.wsgi_app(environ,start_response)
File "/Users/swapneel/Library/Python/3.8/lib/python/site-packages/flask/app.py",line 2450,in wsgi_app
response = self.handle_exception(e)
File "/Users/swapneel/Library/Python/3.8/lib/python/site-packages/flask_restful/__init__.py",line 272,in error_router
return original_handler(e)
File "/Users/swapneel/Library/Python/3.8/lib/python/site-packages/flask/app.py",line 1867,in handle_exception
reraise(exc_type,exc_value,tb)
File "/Users/swapneel/Library/Python/3.8/lib/python/site-packages/flask/_compat.py",line 39,in reraise
raise value
File "/Users/swapneel/Library/Python/3.8/lib/python/site-packages/flask/app.py",line 2447,in wsgi_app
response = self.full_dispatch_request()
File "/Users/swapneel/Library/Python/3.8/lib/python/site-packages/flask/app.py",line 1952,in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/swapneel/Library/Python/3.8/lib/python/site-packages/flask_restful/__init__.py",line 1821,in handle_user_exception
reraise(exc_type,line 1950,in full_dispatch_request
rv = self.dispatch_request()
File "/Users/swapneel/Library/Python/3.8/lib/python/site-packages/flask/app.py",line 1936,in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/swapneel/Desktop/projects/PokemonTranslation/main.py",line 49,in get_poke
ordered_poke_list = OrderedDict(jsonify(d))
TypeError: 'Response' object is not iterable
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)