首页 > 解决方案 > 如何为父级和子级分配python变量

问题描述

如何根据测试级别的用户输入(即P1、P2)分配python程序以输出可用列表(即List1、List2)。

我试着这样做。


蟒蛇代码:

testing_lists = db.child("testlevel").shallow().get()

print(testing_lists.val())

choice_level = testing_lists.val()['P1']

print(choice_level)

输出:

dict_keys(['P1', 'P2'])

……

TypeError:“dict_keys”对象不可下标

我无法从 P1 中获取要检索的数据。

图片来自火力基地

更新(11 月 11 日)

假设我想在 P1 中为列表 1 和列表 2 创建一个数组,我该怎么办?

即,我该怎么做?

用户输入“P1”。输出提供 a={List1, List2}。

之后用户输入“List1”输出提供 b={Word1(value), Word2(value), Word3(value)}

跑步的例子。

输入 1:P1 输出 1:列表 1、列表 2

输入 2:列表 1 输出 2:苹果、香蕉、椰子


蟒蛇代码:

testing_lists = db.child("testlevel").get()

k=testing_lists.val()

打印 (k)

输出:

OrderedDict([('P1', {'list1': {'word1': 'apple', 'word2': 'banana', 'word3': 'coconut'}, 'list2': {'word1': '救护车', 'word2': 'bus', 'word3': 'car'}}), ('P2', {'list1': {'word1': 'apricot', 'word2': '甜菜根', 'word3 ': 'capsicum'}, 'list2': {'word1': 'apache', 'word2': '推土机', 'word3': 'chinook'}})])


之后,我不确定如何进行。

标签: pythonfirebasefirebase-realtime-database

解决方案


既然你这样做db.child("testlevel").shallow().get()了,我希望testing_lists变量只包含下面的直接键,testlevel而不是每个键下的值。如果确实如此,那么testing_lists.val()['P1']就没有任何意义,因为从一开始就从未从数据库中检索过该值。

如果这个假设是正确的,你会想要get()没有shallow()db.child("testlevel").get()


推荐阅读