Python 如何使用jinjasql在配置单元上执行查询
是否可以使用jinjasql和pyhive执行配置单元的查询? 当我尝试它时,我得到了以下错误Python 如何使用jinjasql在配置单元上执行查询,python,hive,jinja2,sql-injection,pyhive,Python,Hive,Jinja2,Sql Injection,Pyhive,是否可以使用jinjasql和pyhive执行配置单元的查询? 当我尝试它时,我得到了以下错误 pyhive.exc.ProgrammingError: Unsupported param format: odict_values(['XXXXXXX']) 我可以使用jinjasql和pyhive执行查询,但我需要同时使用这两者来防止sql注入 环境(都在同一个VM上。) 0.1.6 0.5.1 Python 3.5.5 Pyhive支持参数中的列表、元组和dict。而jinjasql支
pyhive.exc.ProgrammingError: Unsupported param format:
odict_values(['XXXXXXX'])
我可以使用jinjasql和pyhive执行查询,但我需要同时使用这两者来防止sql注入
环境(都在同一个VM上。)
- 0.1.6
- 0.5.1
- Python 3.5.5
在Python3中,您必须将参数转换为list,因为dict.values()返回字典值的一部分。正如您提到的,PyHive允许list作为执行参数,我根据您的建议使用list函数将bind_参数转换为list
from pyhive import hive
from jinjasql import JinjaSql
j = JinjaSql()
template = "SELECT * FROM sample_07 WHERE code = {{ codex }}"
data = {'codex': '13-1061'}
query, bind_params = j.prepare_query(template, data)
updated_bind_params = list(bind_params)
cursor = hive.connect('sandbox.hortonworks.com').cursor()
cursor.execute(query, updated_bind_params)
print(cursor.fetchall())
它可以从蜂巢中获取记录