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()/<代码>方法。