如何在boto3中传递JSON文件作为create_traffic_policy的Document参数?
解决Route53 create_traffic_policy中传入JSON文件内容到Document参数的问题
嘿,你已经快搞定了!问题出在你读取文件后得到的是二进制数据,而create_traffic_policy的Document参数需要的是JSON格式的字符串。这里有两种简单的解决方式:
方法1:直接读取文件为字符串(推荐)
用文本模式打开文件,直接获取字符串内容,这样可以直接传给参数,同时用with语句还能自动管理文件资源,避免泄漏:
import boto3 client = boto3.client('route53') with open('policy.json', 'r') as policy_file: policy_document = policy_file.read() response = client.create_traffic_policy( Name='test2', Document=policy_document, Comment='new traffic policy' )
方法2:将二进制数据解码为字符串
如果你已经用二进制模式读取了文件,只需要把bytes对象解码成UTF-8字符串即可(JSON文件默认用UTF-8编码):
import boto3 client = boto3.client('route53') doc_bytes = open('policy.json', 'rb').read() policy_document = doc_bytes.decode('utf-8') response = client.create_traffic_policy( Name='test2', Document=policy_document, Comment='new traffic policy' )
小提醒:一定要确保policy.json里的内容是合法的JSON格式,不然调用API时会返回格式错误的提示哦。
内容的提问来源于stack exchange,提问作者DevBabai
相关产品推荐
相关产品推荐

