Not sure if this belongs here or in StackOverflow, seems 50/50.
I am trying to figure out how to build a dynamic query using simple_salesforce
and there is no problem using a completely static query such as query1()
below, however when trying to build the query with variables I receive the error in the question title.
Exception has occurred. simple_salesforce.exceptions.SalesforceMalformedRequest, Malformed request https://myInstance.my.salesforce.com/services/data/v38.0/query/?q=SELECT+Id%2C+FirstName%2C+LastName%2C+Email+FROM+Contact+WHERE+LastName+%3D+%2F%22Jones%2F%22. Response content: [{'message': '\nEmail FROM Contact WHERE LastName = /"Jones/"\n ^\nERROR at Row:1:Column:68\nBind variables only allowed in Apex code', 'errorCode': 'MALFORMED_QUERY'}]
def query1():
query = "SELECT Id, FirstName, LastName, Email FROM Contact WHERE LastName = 'Jones'"
sf = connectToSF()
result = sf.query(query)
print(json.dumps(result, indent=4))
// Works perfectly, returns JSON with query results
def query2():
fields = 'Id, FirstName, LastName, Email'
obj = 'Contact'
compare_this = 'LastName'
to_this = '/"Jones/"'
query2 = "SELECT {0} FROM {1} WHERE {2} = {3}".format(
fields, obj, compare_this, to_this)
sf = connectToSF()
result2 = sf.query(query2) //Error thrown here
print(json.dumps(result2, indent=4))
I've tried these permutations with the same error:
to_this = r'Jones'
to_this = r'/"Jones/"'
to_this = '/"Jones/"'
to_this = '"Jones"'