2015-10-07 185 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