我有很多套JSON数据,每套转换成dict后都是这样的:
df.withColumn("objectid", regexp_extract(concat_ws(" ", col("objectid")), "[\\w]{2}[\\d]{3}", 0))
我想用这个遍历列表 +---+--------+----+
| id|objectid|name|
+---+--------+----+
|100| AB100| ABC|
|200| AB200| CDE|
+---+--------+----+
:
json_data =
{
"root":[
1,
2,
3
]
}
我希望得到这个输出:
[1,2,3]
for value in json_data.values():
print(value)
1
但我明白了:
2
我应该在代码中更改什么?谢谢!
答案 0 :(得分:2)
dict.keys()
或 dict.values()
会给我们dict_values([[1, 2, 3]])
所以像这样迭代
for value in json_data.values():
print(value)
将返回我们。注意:json_data.values()[0]
将返回错误 TypeError: 'dict_values' object is not subscriptable
[1, 2, 3]
这里有三个选项。
Option1 使用您的示例但重复两次
for value in json_data.values():
for lst in value:
print(last)
Option2 如果您知道密钥,您可以使用 .get()
或 dict['key']
for value in json_data['root']:
print(value)
for value in json_data.get('root'):
print(value)
选项 3
for value in json_data.values():
print(*value)
这会给你1 2 3
现在当然还有更多选择,但这些是我能想到的。
答案 1 :(得分:1)
您可能想使用 dict.items()
:
json_data = {
"root": [1, 2, 3]
}
for key, values in json_data.items():
print(key, values)
for value in values:
print(value)
答案 2 :(得分:1)
您可以使用 list
关键字,以便您可以使用 json_data.values()
的索引
for value in list(json_data.values())[0]:
print(value)
这将返回:(在您的示例中)
1
2
3
要对 json_data 中的所有键执行此操作,您可以执行以下操作:
for index in range(len(json_data.values())):
for value in list(json_data.values())[index]:
print(value)