Python SQLite 查询中 JSON 路径中的命名样式参数替换?

Python named style parameter substitution in a JSON path in a SQLite query?

我试图在包含 JSON extract function 的 SQLite select 查询中用 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)

这个正确returns[('sample_title',)]。但是,由于我必须处理许多不同的 JSON 记录,这些记录都在 JSON 文件中的同一路径级别上,所以我想创建一个函数,我只需要在其中输入不同的路径。

我想使用命名样式进行替换:

sample_query = c.execute('''select json_extract(data, '$.data.:var1') from rd_test;''', {"var1": 'title'}).fetchall()
print(sample_query)

这个returns[(None,)]。我的错误在哪里?

占位符不会在字符串中被替换。使用字符串连接将 '$.data.':var1.

组合
sample_query = c.execute('''select json_extract(data, '$.data.' || :var1) from rd_test;''', {"var1": 'title'}).fetchall()