Python 从JSON打印值

Python 从JSON打印值,python,json,boto3,Python,Json,Boto3,这里没有。我有一个列表,可以返回如下项目: "Users": [ { "UserName": "Adele", "Path": "/", "CreateDate": "2013-03-07T05:14:48Z", "UserId": "AKIAI44QH8DHBEXAMPLE", "Arn": "arn:aws:iam::123456789012:user/Adele" }, {

这里没有。我有一个列表,可以返回如下项目:

"Users": [
    {
        "UserName": "Adele",
        "Path": "/",
        "CreateDate": "2013-03-07T05:14:48Z",
        "UserId": "AKIAI44QH8DHBEXAMPLE",
        "Arn": "arn:aws:iam::123456789012:user/Adele"
    },
    {
        "UserName": "Bob",
        "Path": "/",
        "CreateDate": "2012-09-21T23:03:13Z",
        "UserId": "AKIAIOSFODNN7EXAMPLE",
        "Arn": "arn:aws:iam::123456789012:user/Bob"
    }
]
我希望能够遍历json对象并打印“CreateDate”用户的用户名:

    for Users, UserName in users.items():
    print Users['CreateDate']
    if Users['CreateDate'] == datetime.today():
        print Users['UserName']
我得到一个错误:

"errorType": "TypeError",

"errorMessage": "string indices must be integers"

不确定我遗漏了什么。

正如其他人在评论中所说的那样。您的用户数据结构是一个列表,您只需使用常规的forloop就可以读取它

>>> users = {"Users": [
...     {
...         "UserName": "Adele",
...         "Path": "/",
...         "CreateDate": "2013-03-07T05:14:48Z",
...         "UserId": "AKIAI44QH8DHBEXAMPLE",
...         "Arn": "arn:aws:iam::123456789012:user/Adele"
...     },
...     {
...         "UserName": "Bob",
...         "Path": "/",
...         "CreateDate": "2012-09-21T23:03:13Z",
...         "UserId": "AKIAIOSFODNN7EXAMPLE",
...         "Arn": "arn:aws:iam::123456789012:user/Bob"
...     }
... ]}
>>> from datetime import datetime
>>> today = datetime.now()
>>> for user in users['Users']:
...     user_created = datetime.strptime(user['CreateDate'], '%Y-%m-%dT%H:%M:%SZ')
...     if user_created.year == today.year and user_created.month == 
today.month and user_created.day == today.day:
...             print(user['UserName'])
... 
>>> 

正如其他人在评论中所说的那样。您的用户数据结构是一个列表,您只需使用常规的forloop就可以读取它

>>> users = {"Users": [
...     {
...         "UserName": "Adele",
...         "Path": "/",
...         "CreateDate": "2013-03-07T05:14:48Z",
...         "UserId": "AKIAI44QH8DHBEXAMPLE",
...         "Arn": "arn:aws:iam::123456789012:user/Adele"
...     },
...     {
...         "UserName": "Bob",
...         "Path": "/",
...         "CreateDate": "2012-09-21T23:03:13Z",
...         "UserId": "AKIAIOSFODNN7EXAMPLE",
...         "Arn": "arn:aws:iam::123456789012:user/Bob"
...     }
... ]}
>>> from datetime import datetime
>>> today = datetime.now()
>>> for user in users['Users']:
...     user_created = datetime.strptime(user['CreateDate'], '%Y-%m-%dT%H:%M:%SZ')
...     if user_created.year == today.year and user_created.month == 
today.month and user_created.day == today.day:
...             print(user['UserName'])
... 
>>> 

以下是众多方法之一:

    import boto3
    import datetime
    a=boto3.client('iam')
    b=a.list_users()
    for i in b['Users']:
        x=i['CreateDate'].date()
        y=datetime.datetime.now().date()
        if x==y:
            print i['UserName']

以下是众多方法之一:

    import boto3
    import datetime
    a=boto3.client('iam')
    b=a.list_users()
    for i in b['Users']:
        x=i['CreateDate'].date()
        y=datetime.datetime.now().date()
        if x==y:
            print i['UserName']

等待第一个简介的全部是列表吗?如果它是一个列表,那么在pythonIt中声明列表的方式就不是这样了。列表的值可能是/dict/strMy建议通过打印来检查用户的数据结构。它可能不像你想象的那样是一本字典。这不是JSONwait。第一个简介的全部是列表吗?如果它是一个列表,那么在pythonIt中声明列表的方式就不是这样了。列表的值可能是/dict/strMy建议通过打印来检查用户的数据结构。这可能不像你想象的那样是一本字典。这不是Json这是一个很好的选择,似乎是正确的,但我改变了今天的now()方法:`x=I['CreateDate'].date().today().y()y=datetime.datetime.today().date()`并将每个人都打印出来,以澄清它们不是今天创建的。它们是在过去几年中创建的。@user2019182好的,那么你为什么要添加
x=i['CreateDate'].date()。今天()
你能解释一下你想用这行做什么吗<代码> > CealDATE < /COD>格式为DATETIME格式,所以为了单独考虑日期,我添加了<代码> .DATE()>代码>方法。这是一个很好的选择,似乎是正确的,但是我改变了今天的No()方法:‘x= i’[CydialTy] ]。`它把每个人都打印出来,以澄清他们并非都是今天创造的。它们是在过去几年中创建的。@user2019182好的,那么你为什么要添加
x=i['CreateDate'].date()。今天()
你能解释一下你想用这行做什么吗<代码>“CealDATE”<代码>处于DATETIME格式,因此为了单独考虑日期,我添加了<代码> .DATE()/<代码>方法。