2016-11-11 41 views
0

如何將帳戶值轉換爲我的SQL查詢接受的字符串。在Python中向SQL查詢參數添加''

import pandas as pd 
import os 
from xlwings import Workbook, Range 
from sqlalchemy import create_engine 

account = Range('G2').options(numbers=int).value #account number #value is 3001001000 

sql = 'SELECT top 30 oraclenum,pcat,ConLenses, sum(dollars) as dollars FROM ' \ 
      'ConData WHERE oraclenum = {} group by oraclenum,pcat, ConLenses'.format(account) 

如何包含''之間的值。有點像在我的SQL查詢中,oraclenum ='3001001000'。如果未格式化爲字符串,則會引發錯誤。

+0

考慮[參數化查詢(HTTP:/ /docs.sqlalchemy.org/en/latest/core/tutorial.html#specifying-bound-parameter-behaviors) – Lunaweaver

回答

2

你可以把逃脫周圍的形式表達(\'{}\')報價,但最好的辦法是換了雙引號的報價,並把簡單的引號的格式字符串

sql = "SELECT top 30 oraclenum,pcat,ConLenses, sum(dollars) as dollars FROM " \ 
      "ConData WHERE oraclenum = '{}' group by oraclenum,pcat, ConLenses".format(account) 
+1

你也可以使用''「''(三引號)作爲多行字符串,參見http:/ /stackoverflow.com/questions/10660435/pythonic-way-to-create-a-long-multi-line-string – Lunaweaver

+0

你是對的,但在這種情況下,它只是一行中的2個字符串,連接並使用反斜槓以避免造成太長的線路。 –

+0

哇。是的,這解決了我的問題!謝謝。 – Cesar