2
ある処理をしながら、あるテーブルから別のテーブルにデータを移動したいとします。データはそのソースで大きなJsonオブジェクトですので、個々の値を除外してデータを選択しています。私はデータを行ごとに以下の関数に渡します。ネストされた値へのアクセス
def transformBadges(row):
for inner_row in row:
for element in inner_row :
id = element['id']
archived = element['archived']
type = element['type']
name = element['name']
badge_id = str(uuid.uuid4())
insertBadge(id, archived, type, name, badge_id)
row
には、基本的に私のターゲット列が含まれています。しかし私はいくつかの列を選択するように私の選択を更新しました。このため、私は以下に上記のコードを変更する必要がありました:私の心の中で
def transformBadges(row):
badges = row['badges']
for inner_row in badges:
for element in inner_row:
id = element['id']
archived = element['archived']
type = element['type']
name = element['name']
badge_id = str(uuid.uuid4())
insertBadge(id, archived, type, name, badge_id)
が、それはまったく同じだ - ちょうど今、別の変数に格納されたデータで。しかし、私はこのエラーを受け取ります:
Traceback (most recent call last):
File "etl/main.py", line 537, in <module>
main()
File "etl/main.py", line 99, in main
transformBadges(row)
File "etl/main.py", line 106, in transformBadges
id = element['id']
TypeError: string indices must be integers
なぜ、最初の仕事は2番目ではないのですか?
なるほど1
inner_row
であるためには、理にかなっています!期限が過ぎると回答を受け付けます – Someguywhocodes