Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Python中JSON项的索引位置_Python_Json - Fatal编程技术网

获取Python中JSON项的索引位置

获取Python中JSON项的索引位置,python,json,Python,Json,我需要能够使用Python获取JSON文件中某个项目的索引位置,以便能够将某些内容附加到同一位置中的另一个项目 JSON如下: { "members": [{ "username": "John Doe#0001", "possesions": [] }, { "username": &

我需要能够使用Python获取JSON文件中某个项目的索引位置,以便能够将某些内容附加到同一位置中的另一个项目

JSON如下:

{
    "members": [{
            "username": "John Doe#0001",
            "possesions": []
        },
        {
            "username": "Samantha Green#0001",
            "possesions": []
        }
    ]
}
例如,我需要找到John Doe 0001在
成员中的位置。因此,我可以在
possions
列表中添加一些内容,如下所示:

data = json.load(jsonFile)
temp = data['members'][Index position]['possesions']
temp.append("something")

我尝试过谷歌搜索,但没有成功。

你可以循环搜索所有成员,直到找到你想要的成员:

data = json.load(jsonFile)
for member in data['members']:
    if member['username'] == 'John Doe#0001':
        member['posessions'].append(something)

但在此之前,您必须检查数据是否为json格式。如果它在dictionary中,那么它将在dict=json.loads(json_文件)行显示错误。

json是python中的dictionary。它没有索引,但可以使用键进行循环。 如果要替换特定键的值,可以使用直接替换
'data[“key”]=new_value'

此解决方案完全跳过索引号,这通常更简单;但是,如果出于某种目的需要索引号,则可以提供它:
用于i,枚举中的成员(数据['members'):…
您想要的
范围(len(dict['members'))
,而不是
范围(len(dict))
import json
    
json_file={
    "members": [{
            "username": "John Doe#0001",
            "possesions": []
        },
        {
            "username": "Samantha Green#0001",
            "possesions": []
        }
    ]
}

dict=json.loads(json_file)

for i in range(len(dict)):
    if dict['members'][i]['username'] == "John Doe#0001":
        print(i)