gpt4 book ai didi

python - 访问嵌套值

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:33 25 4
gpt4 key购买 nike

我想将数据从一个表移动到另一个表,并在中间进行一些处理。数据在其来源处是一个大型 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

为什么第一个有效而第二个无效?

最佳答案

def transformBadges(row):
badges = row['badges']
for element in badges:
id = element['id']
archived = element['archived']
type = element['type']
name = element['name']
badge_id = str(uuid.uuid4())

insertBadge(id, archived, type, name, badge_id)

因为 badges 现在已经是一个 inner_row

关于python - 访问嵌套值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44006756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com