首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使json对象的键成为该对象中某一项的值?

如何使json对象的键成为该对象中某一项的值?
EN

Stack Overflow用户
提问于 2022-10-17 15:54:54
回答 1查看 24关注 0票数 0

现在,我的.json文件中的一个对象如下所示:

代码语言:javascript
复制
{
    "id": 1,
    "name": "Bulbasaur",
    "type_1": "Grass",
    "type_2": "Poison",
    "primary_color": "Green",
    "height": 0.7,
    "weight": 6.9,
    "hp": 45,
    "attack": 49,
    "defense": 49,
    "speed": 45,
    "can_evolve": "TRUE",
    "evolves_from": "",
    "final_evolution": "FALSE",
    "mega_evolution": "FALSE"
},

我想要一种将上面的json的多个副本(900份)转换成这样的方法:

代码语言:javascript
复制
{
    "1": [
        {
            "name": "Bulbasaur",
            "type_1": "Grass",
            "type_2": "Poison",
            "primary_color": "Green",
            "height": 0.7,
            "weight": 6.9,
            "hp": 45,
            "attack": 49,
            "defense": 49,
            "speed": 45,
            "can_evolve": "TRUE",
            "evolves_from": "",
            "final_evolution": "FALSE",
            "mega_evolution": "FALSE"
        }
    ],
    "Bulbasaur": [
        {
            "id": "1",
            "type_1": "Grass",
            "type_2": "Poison",
            "primary_color": "Green",
            "height": 0.7,
            "weight": 6.9,
            "hp": 45,
            "attack": 49,
            "defense": 49,
            "speed": 45,
            "can_evolve": "TRUE",
            "evolves_from": "",
            "final_evolution": "FALSE",
            "mega_evolution": "FALSE"
        }
    ]
}

实际上,我只需要找到一种方法,将对象的键设置为同一个对象的值,我就可以设置好了。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-10-17 16:27:18

使用dict.fromkeys()

代码语言:javascript
复制
original = {
    "id": 1,
    "name": "Bulbasaur",
    "type_1": "Grass",
    "type_2": "Poison",
    "primary_color": "Green",
    "height": 0.7,
    "weight": 6.9,
    "hp": 45,
    "attack": 49,
    "defense": 49,
    "speed": 45,
    "can_evolve": "TRUE",
    "evolves_from": "",
    "final_evolution": "FALSE",
    "mega_evolution": "FALSE"
}

result = dict.fromkeys((original['id'], original['name']), original)

result是:

代码语言:javascript
复制
{1: {'attack': 49,
     'can_evolve': 'TRUE',
     'defense': 49,
     'evolves_from': '',
     'final_evolution': 'FALSE',
     'height': 0.7,
     'hp': 45,
     'id': 1,
     'mega_evolution': 'FALSE',
     'name': 'Bulbasaur',
     'primary_color': 'Green',
     'speed': 45,
     'type_1': 'Grass',
     'type_2': 'Poison',
     'weight': 6.9},
 'Bulbasaur': {'attack': 49,
               'can_evolve': 'TRUE',
               'defense': 49,
               'evolves_from': '',
               'final_evolution': 'FALSE',
               'height': 0.7,
               'hp': 45,
               'id': 1,
               'mega_evolution': 'FALSE',
               'name': 'Bulbasaur',
               'primary_color': 'Green',
               'speed': 45,
               'type_1': 'Grass',
               'type_2': 'Poison',
               'weight': 6.9}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74099941

复制
相关文章

相似问题

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