当前位置: 首页 > 知识库问答 >
问题:

Python从JSON对象返回键值对[duplicate]

令狐弘益
2023-03-14

我试图返回这个JSON对象中第一个条目的“publisher”和“title”值。

{
    "count": 30,
    "recipes": [{
        "publisher": "Closet Cooking",
        "f2f_url": "htt//food2forkcom/view/35171",
        "title": "Buffalo Chicken Grilled Cheese Sandwich",
        "source_url": "htt//wwwclosetcookingcom/2011/08/buffalo-chicken-grilled-cheese-sandwich.html",
        "recipe_id": "35171",
        "image_url": "htt//staticfood2forkcom/Buffalo2BChicken2BGrilled2BCheese2BSandwich2B5002B4983f2702fe4.jpg",
        "social_rank": 100.0,
        "publisher_url": "htt//closetcooking.com"
    }, {
        "publisher": "All Recipes",
        "f2f_url": "htt//food2fork.com/view/29159",
        "title": "Slow Cooker Chicken Tortilla Soup",
        "source_url": "htt//allrecipescom/Recipe/Slow-Cooker-Chicken-Tortilla-Soup/Detail.aspx",
        "recipe_id": "29159",
        "image_url": "htt//staticfood2forkcom/19321150c4.jpg",
        "social_rank": 100.0,
        "publisher_url": "htt//allrecipescom"
    }]
}

当我运行这段代码时,我可以在开始时返回减去计数部分的对象

r = requests.post(url, data = {"key":"aeee9034f8d624f0e6c57fe08e2fd406","q":"chicken"})
recipe=r.json()
print(recipe['recipes'])

然而,当我试图运行:

print(recipe['recipes']['publisher'])

我得到一个错误:

TypeError: list indices must be integers or slices, not str

我应该在代码中执行哪些操作来打印信息:

Closet Cooking, Bacon Wrapped Jalapeno Popper Stuffed Chicken

共有2个答案

郭阳泽
2023-03-14

'recipes'键包含多个配方的列表

recipe['recipes'][0]['publisher']

将返回列表中第一个配方的发布者。

胡彭亮
2023-03-14

是一个对象列表,因此您可以迭代它:

要返回此JSON对象中第一个条目的'发布者'和'title'值,您可以使用列表理解并获得结果集合的第一个元素:

recipes = [{element['publisher']: element['title']} for element in recipe['recipes']][0]

如果希望扩展结果并在返回的列表中包含更多字段或更多元素,这将为您提供一点灵活性。

 类似资料:
  • 问题内容: 我正在尝试从字符串(从Web获取)中读取JSON,但返回。 具体来说,给我 考虑包含以下JSON字符串: 编辑:最终代码工作 特别感谢Sufian和Ved! 问题答案: “ id”和“ name”位于JSON对象内部,键为“ rikeard”。因此,您需要进行如下更改:

  • 过去几天我一直在研究如何做到这一点,但毫无结果。 我有一个JSON文件,其中包含大量JSON对象,如下所示: 我正在尝试访问每个键和值,并将它们写入csv文件。我相信使用<code>json.loads(json.dumps(文件))</code>应该可以正常的json格式工作,但是因为有一个对象数组,我似乎无法访问每个对象。 converter.py: grab_tweets.py: 到目前为止

  • 问题内容: 在我的特定情况下,我有两种解决方案。我想找出哪一种更可行。在这种情况下,我还可以通过从服务器端代码返回JSON对象来实现自己的目标。但是,我不知道它是如何完成的,最好的方法是什么。 首先,我不需要完整的aspx页面,因为我只需要从代码返回的响应即可。那么,我是否使用Web服务,处理程序,或者是否有其他特定方法来执行此操作? 这个解决方案可行吗?我是否使用该类构建JSON字符串并将该字符

  • 嗨,所有Stackoverflow大师, 我正在开发一个应用程序,该应用程序使用来自某个rest webservice的JSON。 此链接上的示例JSONhttp://pastebin.com/embed_js.php?i=VYESA9MG(这是由于JSON有点长) 我创建了一个POJO类来满足这个JSON模型,如下所示: 这个模型在我们的代码中使用GSON模块调用。目前我已经抓到JSON,据了解

  • 问题内容: 如何从Java Servlet返回JSON对象。 以前,当使用servlet执行AJAX时,我返回了一个字符串。是否有需要使用的JSON对象类型,或者你只是返回了一个看起来像JSON对象的String,例如 问题答案: 我完全按照你的建议去做(返回a )。 不过,你可能会考虑将MIME类型设置为指示你正在返回JSON(根据其他stackoverflow文章,其为“ applicatio

  • 问题内容: 这是我正在使用的 json对象 我希望将此作为另一个键值对: 我尝试了concat,但是使用||给了我结果 符号,我cdnt进行迭代。我用过溢漏,但只删除了逗号。 如何将密钥对值添加到现有的json对象?我正在使用JavaScript。 问题答案: 这是最简单的方法,对我有用。