我需要检索GoDaddy证书的名称和过期日期。我正在尝试这样的代码:
def get_cert():
customerId = "UUID"
cert_url = "https://api.godaddy.com//v2/customers/%s/certificates" %(customerId)
cert_response = requests.get(cert_url, headers=headers)
cert_dict = json.loads(cert_response.text)
for cert in cert_dict:
cert_name = (cert['commonName'])
print(cert_name)
并得到如下错误:
cert_name = (cert['commonName'])
TypeError: string indices must be integers
未经分析的API调用的输出:
{
"certificateId": "ID",
"commonName": "*.domain.co.uk",
"completedAt": "2021-01-12T14:26:36Z",
"createdAt": "2020-04-02T14:25:06Z",
"period": 1,
"serialNumber": "NUMBER",
"status": "CURRENT",
"type": "DV_WILDCARD_SSL",
"validEndAt": "2022-05-04T14:26:32Z",
"validStartAt": "2021-04-02T14:26:32Z"
}
我为GoDaddy domains API编写了相同的代码,它工作正常(逻辑相同,只是API URL和键不同),所以我不明白为什么在这种情况下禁止使用“commonName”和“validEndAt”来剪切json输出
确保您接收到的是您假设的数据类型。如果解码产生一个包含
dict
对象的list
实例,那么您拥有的代码是合适的。您收到的错误消息似乎是一个dict
当您遍历
dict
时,您将收到它的所有键。如果您确切地知道您想要什么密钥,就不需要对其进行迭代如果密钥不存在,这将引发错误。另一种尝试在没有任何异常的情况下检索它的方法是:
common_name = cert_dict.get('commonName')
如果密钥不在那里,
common_name
将是None
相关问题 更多 >
编程相关推荐