这里是Python Noob。我有一个返回如下项目的列表:
"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”的用户的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"
不知道我错过了什么。
发布于 2018-01-24 04:52:43
以下是许多方法之一:
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']
发布于 2018-01-23 16:12:23
正如其他人在评论中所说的那样。您的用户数据结构是一个列表,您只需使用一个常规的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'])
...
>>>
https://stackoverflow.com/questions/48405741
复制相似问题