【发布时间】:2021-08-28 15:07:28
【问题描述】:
我需要检索 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 域 API 有相同的代码并且它工作正常(逻辑相同,仅 API URL 和密钥不同)所以我不明白为什么它禁止通过“commonName”和“validEndAt”剪切 json 输出" 在这种情况下。
【问题讨论】:
-
在这种情况下,使用调试器非常有用;在这种情况下,您需要单步执行失败的循环并查看失败时
cert的值是多少。调试器基本上是第 1 天,编程 101 件要学习的东西,所以如果你还不知道如何使用调试器,这是一个熟悉它的好机会。我建议使用 PyCharm 调试器。 -
您的行:
for cert in cert_dict:意味着每个cert都是一个字符串,因为 json 对象必须具有字符串键。
标签: python arrays json python-2.7 sorting