Python - 检查变量是否为==到json元素并打印

时间:2017-01-21 00:48:41

标签: python json

我有一个json响应,有数千个学生信息位。它看起来像这样:

{
"users": [
    {
        "agents": [
            {
                "href": "private url here",
                "sourcedId": "g560",
                "type": "user"
            }
        ],
        "dateLastModified": "2016-10-24T15:24:00.000Z",
        "demographics": {
            "href": "private url here",
            "sourcedId": "s557",
            "type": "demographics"
        },
        "email": "example@example.com",
        "familyName": "Smith",
        "givenName": "John",
        "identifier": "000000000",
        "metadata": {
            "ext_grade_level": "11"
        },
        "orgs": [
            {
                "href": "private URL here",
                "sourcedId": "000000000000000000000000000000",
                "type": "org"
            },
            {
                "href": "private URL Here",
                "sourcedId": "0000000000000000000000000000000000",
                "type": "org"
            },
            {
                "href": "private url here",
                "sourcedId": "000000000000000000000000000",
                "type": "org"
            }
        ],
        "role": "student",
        "sourcedId": "s557",
        "status": "active",
        "username": "000000000"
    },
    {

然后从“代理人”开始重复:[对于下一个学生,大约2,500次。我真正想做的是以下,我有“students_data”= students_data.json()。

json1 = students_data['users']
stu_email = input("Enter a student email address here:")

if item in json1 == stu_email:
    print(stu_email)

当我跑步时,没有任何反应。它要求输入然后结束。没有错误,没有任何错误。除了明显错误之外,我什么都没有。此外,如果它确实有效,我将如何打印匹配地址的familyName,givenName和identifier?

嵌套在词典中的列表确实让我感到困惑,因为我知道如何处理列表的唯一方法是使用[0]或[1]等索引。但是,在这种情况下,这不是一个选项。

另外,我尝试了json1 ['email'],但我得到了“TypeError:list indices必须是整数或切片,而不是str”,我认为这是因为我正在跳过列表。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

Json数据可以包含彼此嵌套的字典和列表。在这里,我们遍历列表student_data ['users']以查找具有匹配电子邮件的第一个学生。 student_email = input(“在此输入学生邮箱地址:”) 对于student_data ['users']中的学生:     如果学生['email'] == student_email:         打印('找到匹配')         打印(学生)         打破 其他:     打印('找不到匹配')