【问题标题】:Weird nested dict奇怪的嵌套字典
【发布时间】:2020-10-13 08:01:24
【问题描述】:

我正在尝试访问嵌套字典,问题是字典中的每个 obj 都有不同的数字和密钥,其中的一个也是如此,这是 json 源:

{
    "100": {
        "status": {
            "timestamp": "2020-10-12T23:24:26.146Z",
            "error_code": 0,
            "error_message": null,
            "elapsed": 19,
            "credit_count": 1,
            "notice": null
        },
        "data": {
            "100": {
                "id": 100,
                "name": "Particle",
                "symbol": "PRT",
                "category": "coin",
                "description": "/`enter code here`",
                "slug": "particle",
                "logo": "https://s2.coinmarketcap.com/static/img/coins/64x64/100.png",
                "subreddit": "",
                "notice": "",
                "tags": ["mineable"],
                "tag-names": ["Mineable"],
                "tag-groups": ["OTHER"],
                "urls": {
                    "website": ["http://www.bitparticle.com/"],
                    "twitter": [],
                    "message_board": [],
                    "chat": [],
                    "explorer": ["http://chaincollider.bitparticle.com/chain/Particle/"],
                    "reddit": [],
                    "technical_doc": [],
                    "source_code": [],
                    "announcement": []
                },
                "platform": null,
                "date_added": "2014-01-22T00:00:00.000Z",
                "twitter_username": "",
                "is_hidden": 0
            }
        }
    }

我正在尝试访问符号和徽标,我通过键入仅对 1 个 obj 进行了访问

json_file['100']['data']['100']['symbol']

我的最终目标是拥有一个完整的列表,其中包含每个 obj 的徽标和符号。

【问题讨论】:

  • 如果您想要一个包含所有值的列表,请遍历键:for k1 in json_file: for k2 in json_file[k1]['data']: x = json_file[k1]['data'][k2]['symbol'] ...
  • 有效,感觉真好!非常感谢

标签: python json python-3.x dictionary nested


【解决方案1】:

您可以遍历字典中的键,然后访问这些键后面的值:

for k1 in json_file:
    for k2 in json_file[k1]["data"]:
        symbol = json_file[k1]["data"][k2]["symbol"]
        ...

如果你只是想要一个所有符号的列表,你也可以使用嵌套列表推导:

>>> [json_file[k1]["data"][k2]["symbol"] for k1 in json_file for k2 in json_file[k1]["data"]]
['PRT']

【讨论】:

    猜你喜欢
    • 2021-09-25
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2018-01-29
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多