python三引號巢狀雙引號執行結果不對

別說話寫程式碼發表於2020-10-14

當python使用三引號巢狀雙引號時需要轉義,不然可能出現一些意想不到的情況,比如

sql="""
select * from table where GET_JSON_OBJECT(regexp_replace(regexp_replace(param, '2:', '"2":'), '4:', '"4":'), '$.XXX') IN(1)
"""
ht.exec_sql(sql)

當使用pyspark執行上面語句時不會報錯,但是結果總是不對,應該在雙引號那裡加上兩個反斜槓轉義

sql="""
select * from table where GET_JSON_OBJECT(regexp_replace(regexp_replace(param, '2:', '\\"2\\":'), '4:', '\\"4\\":'), '$.XXX') IN(1)
"""
ht.exec_sql(sql)

 

相關文章