需要保存boto3输出(作为备份)到JSON文件
#!/bin/python
import boto3
import json
client = boto3.client('iam')
response = client.get_account_authorization_details(
)
sys.stdout = open('output.json','wt')
print response我得到了输出:
{u'RoleDetailList': [{u'AssumeRolePolicyDocument': {u'Version': u我怎样才能摆脱u?
而且我也不能解析这个输出:
with open('output.json') as file:
data = json.load(file)
ValueError: Expecting property name: line 1 column 2 (char 1)已尝试:
with open('output.json', 'w') as outfile:
json.dump(response, outfile)现在开始:TypeError: datetime.datetime(2016, 8, 20, 13, 51, 7, tzinfo=tzlocal()) is not JSON serializable
发布于 2018-04-12 19:04:02
这就是你如何正确地做它,在最简单的基本的方式。
import boto3
import json
client = boto3.client('ec2')
resp = client.describe_regions()
{u'Regions': [{u'Endpoint': 'ec2.ap-south-1.amazonaws.com',
u'RegionName': 'ap-south-1'},
{u'Endpoint': 'ec2.eu-west-3.amazonaws.com', u'RegionName': 'eu-west-3'},
{u'Endpoint': 'ec2.eu-west-2.amazonaws.com', u'RegionName': 'eu-west-2'},
{u'Endpoint': 'ec2.eu-west-1.amazonaws.com', u'RegionName': 'eu-west-1'},
{u'Endpoint': 'ec2.ap-northeast-2.amazonaws.com',
....
with open('random.json', 'w') as fout:
json.dump(resp, fout)
c = json.load(open('random.json', 'r'))
{u'Regions': [{u'Endpoint': u'ec2.ap-south-1.amazonaws.com',
u'RegionName': u'ap-south-1'},
{u'Endpoint': u'ec2.eu-west-3.amazonaws.com', u'RegionName': u'eu-west-3'},
{u'Endpoint': u'ec2.eu-west-2.amazonaws.com', u'RegionName': u'eu-west-2'},
{u'Endpoint': u'ec2.eu-west-1.amazonaws.com', u'RegionName': u'eu-west-1'},
{u'Endpoint': u'ec2.ap-northeast-2.amazonaws.com',
...发布于 2018-04-12 19:07:39
这解决了我的问题,谢谢大家:
#!/bin/python
import boto3
import json
from bson import json_util
client = boto3.client('iam')
response = client.get_account_authorization_details(
)
with open('output.json', 'w') as outfile:
json.dump(response, outfile, default=json_util.default)https://stackoverflow.com/questions/49794587
复制相似问题