首页 > 解决方案 > 按名称解析 json 值

问题描述

任何人都可以指出我在Python中解析一些JSON的正确方向吗,我一直无法找到一种方法来做到这一点

data = {
    "profile": {
        "properties": [

            {
                "name": "SavedNetworkAddress",
                "type": "StrProperty",
                "value": "111.111.111.111"
            }, {
                "name": "PlayerName",
                "type": "StrProperty",
                "value": "TEST"
            }, {
                "name": "bFirstSpawned",
                "type": "BoolProperty",
                "value": true
            }
        ]
    }
}

如果我使用下面的行,它将返回该部分111.111.111.111中的值'SavedNetworkAddress',但是在我的源数据中,该特定部分可能不在数组的第一个位置

print(data['profile']['properties'][0]['value'])

我需要使用一些东西来获取与“SavedNetworkAddress”相同部分中的值,但我无法找到在 python 中执行此操作的方法

我已经能够让它在 powershell 中工作,但是由于文件的大小,它需要很长时间才能运行

谢谢!

标签: pythonjsondictionary

解决方案


Json 类似于 Python 中的字典。由于您的键的值properties是一个 json 数组(这里是字典列表,您可以简单地遍历列表并查看键是否name匹配SavedNetworkAddress

下面是相同的代码:

for i in range(len(data['profile']['properties'])):
    if data['profile']['properties'][i]['name'] == "SavedNetworkAddress":
        print(data['profile']['properties'][i]['value']) 
    

编辑

您的数据中有一个小错误,Python 将无法识别true. 所以请转换true为字符串或将其转换为 python 关键字True


推荐阅读