2015-10-07 50 views
0

我有一個問題,我認爲是一個簡單的腳本工作,我認爲這只是我不知道如何獲得一個變量的工作。python變量無效的語法問題

我正在研究一個抓取對象列表的salesforce腳本,然後查看對象列表以獲取表上的所有字段。

此查詢在python作品完美地給了我對象的名單,我已經拉進了DB

query = ("SELECT obj_name FROM syncsfobjects") 
cursor.execute(query) 

我然後依次通過這些記錄

for x in cursor: 

現在,這是我的問題謊言我想在下一條語句中使用來自我的查詢中的obj_name

for xy in sf.%obj_name%.describe()["field"]: 

我遇到的大問題是將obj名稱引入此簡單銷售隊伍查詢中。

如果我創建一個字符串,它工作正常

objectname = str(x) 
sfquery = 'sf. %s .describe()["fields"]' % objectname 

但後來當我使用sfquery我的下一個循環中的所有循環它通過串中的每個字母的運行,而不是運行SF連接命令。

任何我只是想念一些簡單的東西?

歡呼 丹

+0

莫非你顯示你從查詢中得到的數據是什麼樣的? – Pim

+0

我不是SQL大師,但不是'SELECT obj_name FROM syncsfobjects'只選擇一個字段? – Pynchia

+0

的SQL位不是我能做到的問題: 對象名= STR(x)的 打印(對象名) 和我得到正確的輸出 - 這個問題似乎重現簡單,銷售人員查詢 SF .Contact.describe()[「fields」] - 其中contact是從db中提取的名稱 - 因爲這不是一個字符串,我似乎無法讓我的變量工作 – danielbprobert

回答

2
for xy in sf.%obj_name%.describe()["field"]: 

Python沒有讓你做「取代百分比」字符串之外,但您仍可以訪問屬性,如果你所有的是他們的名字:

for xy in getattr(sf, objectname).describe()["field"]: 
+0

嗯 - 令人敬畏的歡呼凱文 - 已整理出來 - 榮譽!!!! – danielbprobert