我试图在包含JSON 提取函数的 SQLite 选择查询中用 Python 变量替换 JSON 路径的一部分。如果我不使用替换,则查询有效:
c.execute("insert into rd_test values (?, ?)",
["test_record", json.dumps(k[0]["data"]["children"][0])])
sample_query = c.execute('''select json_extract(data, '$.data.title') from rd_test;''').fetchall()
print(sample_query)
这正确返回[('sample_title',)]
。但是,由于我必须处理许多不同的 JSON 记录,这些记录都在 JSON 文件中的同一路径级别,所以我想创建一个函数,我只需在其中输入不同的路径部分。
我想使用命名样式进行替换:
sample_query = c.execute('''select json_extract(data, '$.data.:var1') from rd_test;''', {"var1": 'title'}).fetchall()
print(sample_query)
这返回[(None,)]
。我的错误在哪里?