Итерация объекта python и его фильтрация - PullRequest
0 голосов
/ 02 июля 2019

нотация JSON, которую я получаю от веб-службы:

{
"students": [
    {
        "studentId": 127292,
        "studentName": "Mary"
    },
    {
        "studentId": 15555,
        "studentName": "Joe"
    }
  ]
}

Я пытаюсь выполнить итерацию объекта JSON и получить идентификатор студента на основе имени студента.

Например, если мне нужно получить studentId из 'Joe', как мы можем обработать это в Python?

try:
    req = urllib2.Request(url, headers = header)
    response = urllib2.urlopen(req)
    jsonObject = json.load(response)

except Exception as e:
    print e

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Я предлагаю переназначить ваши данные в словарь, где вы можете найти своих учеников по имени:

data = {
"students": [
    {
        "studentId": 127292,            
        "studentName": "Mary"            
    },
    {
        "studentId": 15555,            
        "studentName": "Joe"            
    }
  ]
}

lookup = {student["studentName"]: student["studentId"] for student in data["students"]}
id_of_joe = lookup.get("Joe", "No student named Joe")
0 голосов
/ 02 июля 2019

Вы можете перебрать объект JSON, чтобы получить идентификатор студента в каждом поле

studentIds = []
for obj in jsonObject:
    sID = obj['studentId']
    studentIds.append(sID)
...