使用 JSON 转储时对象不可 JSON 序列化

Object Is Not JSON Serializable When Using JSON Dumps

我正在对 return 对象数组使用异步方法,但出现 "TypeError: is not JSON serializable" 错误,我不确定如何更正它。这是我的代码:

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text

class NewStoriesHandler(tornado.web.RequestHandler):
    async def get(self):
        self.set_header("Access-Control-Allow-Origin", "*")
        response = requests.get(
        "https://hacker-news.firebaseio.com/v0/newstories.json?print=pretty")
        data = response.json()
        story_list = []
        async with aiohttp.ClientSession() as session:
           for url in data:
               story_list.append(fetch(session, url))

        print(story_list)
        self.write(json.dumps(story_list, default=json_util.default))
        self.finish()

我尝试 return Json 返回到该方法,但没有成功,我不确定它期望返回什么。循环 return 每次调用一个对象并将其追加到数组中。

在我看来,您正在向列表中添加 co-routine 个对象,而不是协程的结果。

我认为您应该 await 每次提取,然后再将它们添加到列表中。我无法 运行 代码,因为我目前正在旅行,但您可能还需要一个策略来在等待每个任务之前开始执行它。