我正在尝试使用python脚本从process-conf.xml
访问bean的sfdc.extractionSOQ
子行。
我的XML文件看起来像...
<beans>
...
<bean id="BatchCustomerAccountExtract"
class="com.salesforce.dataloader.process.ProcessRunner"
scope="prototype">
<description>BatchCustomerAccountExtract</description>
<property name="name" value="BatchCustomerAccountExtract"/>
<property name="configOverrideMap">
<map>
<entry key="sfdc.debugMessages" value="false"/>
<entry key="sfdc.debugMessagesFile" value="Logs/"/>
<entry key="sfdc.endpoint" value="https://login.salesforce.com"/>
<entry key="sfdc.username" value="[omitted]"/>
<entry key="process.encryptionKeyFile" value="key.txt"/>
<entry key="sfdc.password" value="fakeValue"/>
<entry key="sfdc.entity" value="Account"/>
<entry key="sfdc.timeoutSecs" value="600"/>
<entry key="sfdc.extractionRequestSize" value="1000"/>
<entry key="process.operation" value="extract"/>
<entry key="dataAccess.type" value="csvWrite"/>
<entry key="process.enableExtractSuccessOutput" value="true"/>
<entry key="process.outputError" value="BatchCustomerAccountExtract.csv"/>
<entry key="dataAccess.name" value=".\Data\BatchContractUpdate.csv"/>
<entry key="sfdc.extractionSOQL" value="
SELECT Id, Name, Client_External_ID__c, Customer_Number__c, Account_RecordID__c, Portal_Access_Code__c
FROM Account
WHERE Id IN ('[omitted]')"/>
</map>
</property>
</bean>
...
</beans
我尝试使用XML库,但是我得到了一些值,我不确定它们是如何到达的。据我所知,我可以通过bean/description/property/map/
访问所有相应的行,但是唉...
这是我尝试过的方法。
import xml.etree.ElementTree as ET
tree = ET.parse('process-conf.xml')
root = tree.getroot()
main_bean = root.find(".//bean[@id='BatchCustomerAccountExtract']")
print(main_bean) #<Element 'bean' at 0x0000027D9324D440>
main_bean_description = main_bean.find(".//property[@name='description']")
print(main_bean_description) #None
for att in root.findall("./bean/descriptionn/"):
print(att) #nothing prints ;(
如何使用python访问SOQL行?谢谢您的帮助。
1条答案
按热度按时间svgewumm1#
下面的代码可以工作(我假设您正在寻找SQL短语)
输出