是否有人尝试使用Beatbox将SalesForce报告解析为Pandas DataFrame? SO上有几个例子,但没有一个提供全面的解决方案,或者至少我认为它没有。
#!/usr/bin/env python3
import beatbox
import pandas as pd
sf = beatbox._tPartnerNS
service = beatbox.Client()
service.serverUrl = 'https://login.salesforce.com/services/Soap/u/38.0'
service.login('my-username', 'my-password')
report_id = '00myreport4G3V'
query = "SELECT Name FROM Report where id = '{}'".format(report_id)
query_result = service.query(query)
这只是选择名称,但理想情况下我想将报告内容加载到DataFrame中。有什么帮助吗?
答案 0 :(得分:1)
我对BeatBox并不熟悉,但是使用simple-salesforce提取csv然后将其转换为DataFrame非常容易。
#-*-coding:utf-8-*-
import pandas as pd
import numpy as np
from simple_salesforce import Salesforce
import requests
###login to SF
sf = Salesforce(username='xxxxx',
password='xxxx',
security_token='',
organizationId='xxxxxx')
def readReport(reportid):
with requests.session() as s:
d = s.get("https://ap1.salesforce.com/{}?export=1&enc=UTF-8&xf=csv".format(reportid),
headers=sf.headers,
cookies={'sid': sf.session_id})
import sys
if sys.version_info[0] < 3:
from StringIO import StringIO
else:
from io import StringIO
return pd.read_csv(StringIO(d.text), sep=",")
df = readReport('your report id')