首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将boto3输出保存为JSON

将boto3输出保存为JSON
EN

Stack Overflow用户
提问于 2018-04-12 18:47:48
回答 2查看 2K关注 0票数 1

需要保存boto3输出(作为备份)到JSON文件

代码语言:javascript
复制
#!/bin/python

import boto3
import json

client = boto3.client('iam')
response = client.get_account_authorization_details(

)

sys.stdout = open('output.json','wt')

print response

我得到了输出:

代码语言:javascript
复制
{u'RoleDetailList': [{u'AssumeRolePolicyDocument': {u'Version': u

我怎样才能摆脱u

而且我也不能解析这个输出:

代码语言:javascript
复制
with open('output.json') as file:
        data = json.load(file)


    ValueError: Expecting property name: line 1 column 2 (char 1)

已尝试:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

发布于 2018-04-12 19:04:02

这就是你如何正确地做它,在最简单的基本的方式。

代码语言:javascript
复制
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',
...
票数 0
EN

Stack Overflow用户

发布于 2018-04-12 19:07:39

这解决了我的问题,谢谢大家:

代码语言:javascript
复制
#!/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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49794587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档