在我的函数中按预期方式排序列表时遇到问题

问题描述

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)

错误:这将首先返回描述。

任何帮助将不胜感激

有用的信息:

Jsonify

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 (将#修改为@)