Pyrebase查询生成器python-exec()问题

Pyrebase查询生成器python-exec()问题,python,firebase,pyrebase,Python,Firebase,Pyrebase,你好,我正在开发一个firebase查询生成器。它基本上是一个请求属性并返回包含完整查询的字符串的函数。它必须被执行,并且应该返回数据 def Search(**kwargs): base="db.child('vocabulary')" #AMOUNT OF DATA ENTERED. entry_length=(len(kwargs.items())) #LAST ATRIBUTTE ENTERED last_atributte

你好,我正在开发一个firebase查询生成器。它基本上是一个请求属性并返回包含完整查询的字符串的函数。它必须被执行,并且应该返回数据

def Search(**kwargs):
    base="db.child('vocabulary')"

    #AMOUNT OF DATA ENTERED.
    entry_length=(len(kwargs.items()))

    #LAST ATRIBUTTE ENTERED
    last_atributte=list(kwargs.items())[entry_length-1]


    #FOR EVERY ATTRIBUTE, ADD IT TO THE ROOT. IF IT'S THE LAST->CLOSE THE QUERY
    for x,y in kwargs.items():

        if y!=last_atributte[1]:
            base+=".child('{}')".format(y)
        else:
            base+=".child('{}').get().val()".format(y)
    print(base)
    return (base)


query=Search(word_type="verbs",word="play")
print(exec(query))
在本例中,函数返回以下字符串:
db.child(“词汇”).child(“动词”).child(“游戏”).get().val()

如果我运行脚本上方的字符串,它将返回数据,但当我使用内置的exec()执行它时,将不返回任何数据:
print(exec(db.child('词汇”).child('动词').child('play').get().val())


你有什么建议可以改进吗?提前感谢。

主要问题是字符串处理错误

而不是:

query=Search(word_type="verbs",word="play")
print(exec(query))
这相当于:print(exec(query))。应该是:

query=Search(word_type="verbs",word="play")
query="print({})".format(query)
exec(query)