イム、私は理解していれば、現在のエラーにのpythonネストされたJSONのararys APIにアクセスする
print objUser['name']
TypeError: string indices must be integers
を取得したサンプル(ここでhttps://developer.pagerduty.com/documentation/rest/escalation_policies/on_call)
SUBDOMAIN='XXX'
API_ACCESS_KEY='XXX'
headers = {
'Authorization': 'Token token={0}'.format(API_ACCESS_KEY),
'Content-type': 'application/json',
}
url = 'https://{0}.pagerduty.com/api/v1/escalation_policies/on_call'.format(SUBDOMAIN)
r = requests.get(url,headers=headers)
objData = r.json()
for objPolicy in objData['escalation_policies']:
print objPolicy['name']
for objOnCall in objPolicy['on_call']:
print objOnCall['level']
print objOnCall['start']
print objOnCall['end']
for objUser in objOnCall['user']:
print objUser['name']
イムは右である、[]リストで、{}オブジェクトですか?だから私はリストとしてオブジェクトにアクセスしようとしているthatsはなぜ動作していないのですか?
初心者のために入れ子の量はかなり分かりません。誰かが説明して、そのon_callポリシーで各ユーザーにアクセスする方法を教えてもらえますか?
おかげで
コードはオブジェクトをうまく取り出すことができました。問題は、objUserが文字列そのものであるように見えることです。 for文の 'print objUser'の後にデバッグ行を追加し、それが何を表示するかを見てみましょう。 –
あなたはリストではなく辞書であるかのように*文字列*にアクセスしようとしています。 – jonrsharpe