使用python导入salesforce报告数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用python导入salesforce报告数据相关的知识,希望对你有一定的参考价值。

我是sfdc的新手。我的报告已由用户创建。我想使用python将报告的数据转储到csv / excel文件中。我看到有几个python包。但是我的代码出错了

from simple_salesforce import Salesforce
sf = Salesforce(instance_url='https://cs1.salesforce.com', session_id='')
sf = Salesforce(password='xxxxxx', username='xxxxx', organizationId='xxxxx')

我可以获得设置API的基本步骤和一些示例代码

答案

这对我有用:

import requests
import csv
from simple_salesforce import Salesforce
import pandas as pd


sf = Salesforce(username=your_username, password=your_password, security_token = your_token)


login_data = {'username': your_username, 'password': your_password_plus_your_token}


with requests.session() as s:
    d = s.get("https://your_instance.salesforce.com/{}?export=1&enc=UTF-8&xf=csv".format(reportid), headers=sf.headers, cookies={'sid': sf.session_id})

d.content将包含一串逗号分隔值,您可以使用csv模块读取这些值。

我从那里把数据带到pandas,因此函数名称和import pandas。我删除了将数据放入DataFrame的函数的其余部分,但是如果你对如何完成它感兴趣请告诉我。

另一答案

如果它有用,我想根据Obol的评论,写出我现在用来回答这个问题的步骤(2018年8月)。作为参考,我按照https://github.com/cghall/force-retrieve/blob/master/README.md上的README说明获取了salesforce_reporting包。

要连接到Salesforce:

from salesforce_reporting import Connection, ReportParser

sf = Connection(username='your_username',password='your_password',security_token='your_token')

然后,为了获得我想要的报告到Pandas DataFrame中:

report = sf.get_report(your_reports_id)
parser = salesforce_reporting.ReportParser(report)
report = parser.records_dict()
report = pd.DataFrame(report)

如果您如此倾向,您还可以将上面的四行简化为一行,如下所示:

report = pd.DataFrame(salesforce_reporting.ReportParser(sf.get_report(your_reports_id)).records_dict())

我在自述文件中遇到的一个区别是,sf.get_report('report_id', includeDetails=True)引发了一个错误陈述get_report() got an unexpected keyword argument 'includeDetails'。简单地删除它似乎导致代码工作正常。

report现在可以通过report.to_csv('report.csv',index=False)导出,或直接操作。

编辑:parser.records()更改为parser.records_dict(),因为这允许DataFrame已列出列,而不是数字索引它们。

以上是关于使用python导入salesforce报告数据的主要内容,如果未能解决你的问题,请参考以下文章

如何直接从 Salesforce Lightning 以 CSV 格式下载报告?

Salesforce 导入导出数据简介

如何使用 Apex 在 SalesForce 中以编程方式访问报告

使用 python simple-salesforce 访问 salesforce 元数据

如何在 Django 中连接 Salesforce 数据库?使用 Python 执行 API 调用?

在 Salesforce 中的用户之间共享报表