我正在尝试运行以下查询。
i=['qwerty12345']
%python
query='''select
column1,column2
from table
where hit_id='{hit_id}'
and device_id='{'{AB14233Q-2E60}'}'
'''.format(hit_id=i)
result= sqlContext.sql(query)
但是我得到ValueError:字段名中意外的"{"我的device_id是'{AB14233Q-2E60}'我遗漏了什么?我真的很感激你能提供的任何帮助。
以防这对其他人有帮助:我的一个格式占位符不小心有一个错误的右括号,所以检查你的括号是否对称。
错误:{item1} {item2} {item3)
------------------------------------^
正确:{item1} {item2} {item3}
format
方法将每个{
和}
作为写入占位符的尝试。
如果不是这种情况,您必须像这样转义它们{{
,}}
。
i=['qwerty12345']
%python
query='''select
column1,column2
from table
where hit_id='{hit_id}'
and device_id='{{'{{AB14233Q-2E60}}'}}'
'''.format(hit_id=i)
result= sqlContext.sql(query)
必须转义device_id
中的引号'''select
column1,column2
from table
where hit_id='{hit_id}'
and device_id='{'{AB14233Q-2E60}'}'
'''
您需要一个转义序列来解决这个问题。试着添加双花括号,像这样{{ }}
:
query= '''select
column1,column2
from table
where hit_id='{hit_id}'
and device_id='{{'{{AB14233Q-2E60}}'}}'
'''.format(hit_id=i)
这应该能奏效