私の最終的な目標は、同じアカウント内の複数のプロパティから上位500ページをCSV形式でエクスポートすることです。私は8つのプロパティを持っているので、最後に8つのCSVが必要です。GA APIの結果をループしようとすると 'NoneType'オブジェクトが反復できません
これまでは、各プロパティの500ページのURLを含む複数のリストを作成できるようにしたいと考えています。
私はPythonには新しいので、スクリプトを段階的に作成しています。
まず私は、プロファイルIDのリストを構築しています:
profiles = service.management().profiles().list(
accountId='XXXXX',
webPropertyId='UA-XXXXXXX-XX').execute()
for profile in profiles.get('items', []):
list.append(profile.get('id'))
第二に、私は、各プロファイルのトップ500ページを取得するために、このリストを反復処理しています:
for item in list:
test = service.data().ga().get(
ids='ga:' + item,
start_date='1daysAgo',
end_date='today',
metrics='ga:sessions',
dimensions='ga:pagePath',
sort='-ga:sessions',
filters='ga:sessions>500').execute()
第三(これを状況が複雑になる)test
変数(?)の結果をループし、各URLページに新しい配列を追加する:
for row in test.get('rows'):
rawdata.append(row)
私は次のエラーを持っているこの段階でスクリプトを実行:私は私の目標が明確であると思います
profiles = service.management().profiles().list(
accountId='5140486',
webPropertyId='UA-5140486-16').execute()
for profile in profiles.get('items', []):
list.append(profile.get('id'))
for item in list:
test = service.data().ga().get(
ids='ga:' + item,
start_date='1daysAgo',
end_date='today',
metrics='ga:sessions',
dimensions='ga:pagePath',
sort='-ga:sessions',
filters='ga:sessions>500').execute()
for row in test.get('rows'):
rawdata.append(row)
:ここ
File "test.py", line 71, in get_first_profile_id
for row in test.get('rows'):
TypeError: 'NoneType' object is not iterable
は、すべてのコードです。助けてくれてありがとう!
test ['rows']が存在しますか?そうでなければ、最後のfor-loopの前に 'if '行を' test'で追加し、インデントをチェックしてください。 – andpei
'profiles.get( 'items'、[])'の前のループのように 'test.get( 'rows'、[])'を使用してください。また、 'append'呼び出しを束縛するのではなく、' list.extend'メソッドを使うことも意味があります。 (また、 'list'という名前の変数を持つことは非常に悪い考えです。) – Blckknght
@Blckknght' test.get( 'rows'、[]) 'と一緒に働いています。あなたはこれについて適切な答えを書くことができますか?なぜか分からない。変数 'list'の名前を変更しました。あなたはまったく正しいです。ありがとう!また、 'list.extend'のおかげでもう一度教えてください! –