首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将相同的名称值格式化为数组

如何将相同的名称值格式化为数组
EN

Stack Overflow用户
提问于 2022-06-27 05:48:30
回答 2查看 42关注 0票数 1

我有这个JSON数据

代码语言:javascript
复制
  {
    "Label": "Color Roles",
    "Pool": "Colors",
    "Hidden": false,
    "Limit": -3,
    "Message": "Pick a colored role to start with <3",
    "Roles": [
      {
        "Name": "Apple★",
        "Print": "Apple",
        "Aliases": ".iam Apple",
        "Aliases1": [
          ".iam Apple",
          "+Apple"
        ]
      },
      {
        "Name": "Clementine★",
        "Print": "Clementine",
        "Aliases": [
          ".iam Clementine",
          "+Clementine"
        ]
      },
      {
        "Name": "Sunflower★",
        "Print": "Sunflower",
        "Aliases": [
          ".iam Sunflower",
          "+Sunflower"
        ]
      },
      {
        "Name": "Mint★",
        "Print": "Mint",
        "Aliases": [
          ".iam Mint",
          "+Mint"
        ]
      },
      {
        "Name": "Ocean★",
        "Print": "Ocean",
        "Aliases": [
          ".iam Ocean",
          "+Ocean"
        ]
      },
      {
        "Name": "Grape★",
        "Print": "Grape",
        "Aliases": [
          ".iam Grape",
          "+Grape"
        ]
      },
      {
        "Name": "Candy Floss★",
        "Print": "Candy Floss",
        "Aliases": [
          ".iam Candy Floss",
          "+Candy Floss"
        ]
      }
    ]
  }
]

我想将"Roles"中的所有"Roles"格式化为一个数组,然后打印。我只能使用代码打印第一个“名称”

代码语言:javascript
复制
print(data['roles'][0]['name'])

我怎样才能把它格式化以便打印出来

代码语言:javascript
复制
["Apple★","Clementine★","Sunflower★","Mint★","Ocean★","Grape★","Candy Floss★"]

然后将该数据保存在数组中,以便用于另一个函数,该函数将充当

代码语言:javascript
复制
values = ["Apple★","Clementine★","Sunflower★","Mint★","Ocean★","Grape★","Candy Floss★"]
info = requests.get(https://api.url.com/{Values?}

只需对循环中的每个值执行请求。

EN

回答 2

Stack Overflow用户

发布于 2022-06-27 05:54:57

您可以使用对Roles数据集的列表理解来获取Name属性:

代码语言:javascript
复制
values = [role['Name'] for role in data['Roles']]

输出(用于样本数据):

代码语言:javascript
复制
["Apple★", "Clementine★", "Sunflower★", "Mint★", "Ocean★", "Grape★", "Candy Floss★"]
票数 1
EN

Stack Overflow用户

发布于 2022-06-27 06:39:56

jsonpath 包专门用于处理json数据.。

你只需要学习一些简单的语法就可以操作了。

代码语言:javascript
复制
from jsonpath import jsonpath

data = {
    "Label": "Color Roles",
    "Pool": "Colors",
    "Hidden": "false",
    "Limit": -3,
    "Message": "Pick a colored role to start with <3",
    "Roles": [
      {
        "Name": "Apple★",
        "Print": "Apple",
        "Aliases": ".iam Apple",
        "Aliases1": [
          ".iam Apple",
          "+Apple"
        ]
      },
      {
        "Name": "Clementine★",
        "Print": "Clementine",
        "Aliases": [
          ".iam Clementine",
          "+Clementine"
        ]
      },
      {
        "Name": "Sunflower★",
        "Print": "Sunflower",
        "Aliases": [
          ".iam Sunflower",
          "+Sunflower"
        ]
      },
      {
        "Name": "Mint★",
        "Print": "Mint",
        "Aliases": [
          ".iam Mint",
          "+Mint"
        ]
      },
      {
        "Name": "Ocean★",
        "Print": "Ocean",
        "Aliases": [
          ".iam Ocean",
          "+Ocean"
        ]
      },
      {
        "Name": "Grape★",
        "Print": "Grape",
        "Aliases": [
          ".iam Grape",
          "+Grape"
        ]
      },
      {
        "Name": "Candy Floss★",
        "Print": "Candy Floss",
        "Aliases": [
          ".iam Candy Floss",
          "+Candy Floss"
        ]
      }
    ]
  }

print(jsonpath(data, "$..Name"))

输出

代码语言:javascript
复制
['Apple★', 'Clementine★', 'Sunflower★', 'Mint★', 'Ocean★', 'Grape★', 'Candy Floss★']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72767443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档