首页 > 解决方案 > 使用 python 从 Salesforce 导入数据

问题描述

我正在尝试将数据从 Salesforce 提取到 python。我能够连接到 Salesforce 并在 Python 中提取数据,但问题是 Python 以我不想要的 JSON 格式给我输出。

我需要帮助来转换数据框中的 JSON 格式。

这是我的代码:

#pip install salesforce_reporting
from simple_salesforce import Salesforce
from salesforce_reporting import Connection,ReportParser,MatrixParser
#import psycopg2 as psy


print("start connecting with salesforce database")
sf = Salesforce(username='XXXXX',password='XXXX',instance_url = 'https://na97.salesforce.com/',sandbox=0, security_token='')
print("connected with salesforce database")

print("start connecting with salesforce database")
sf = Salesforce(username='XXXXX',password='XXXX',instance_url = 'https://na97.salesforce.com/',sandbox=0, security_token='')
print("connected with salesforce database")
print("pull data from salesforce database object")
pd = sf.query("select name from Account where name ='New Technology Sweden AB'") # if we use sf.query_all then will can get all records from spefific objects
#print(pd)

这是我的输出:。

# to read data
pd

OrderedDict([('totalSize', 2),
             ('done', True),
             ('records',
              [OrderedDict([('attributes',
                             OrderedDict([('type', 'Account'),
                                          ('url',
                                           '/services/data/v38.0/sobjects/Account/0018000000UG7VaAAL')])),
                            ('Name', 'New Technology Sweden AB')]),
               OrderedDict([('attributes',
                             OrderedDict([('type', 'Account'),
                                          ('url',
                                           '/services/data/v38.0/sobjects/Account/0018000000vhiN4AAI')])),
                            ('Name', 'New Technology Sweden AB')])])])

标签: pythonjsondataframesalesforce

解决方案


“我不想要的 JSON 格式输出”

您需要在这里帮助那些从未编写过 Python 代码的纯 Salesforce 人员。“数据框”可以接受哪些格式?

Salesforce REST API(由 simple_salesforce 使用)支持 JSON 和 XML。您只需发送一个 HTTP“Accept”标头即可指定 XML。如果您可以使用 XML,那么也许您可以打开库的源代码,或者可能有一些配置选项来指定自定义标头...最坏的情况是您可以自己制作 GET 消息,一旦您登录,它就不是火箭科学, GET到正确的地址Authorization Bearer <session id here>++那个可选Accept application/xml

在此处输入图像描述

如果您需要 CSV 格式...该库表示它还支持 SF Bulk API。那个可以做JSON/XML/CSV虽然你指定它略有不同。同样,也许您可​​以打开简单的salesforce 的源代码并稍微弄乱一下,也许您会自己编写请求。培训可能会有所帮助:https ://trailhead.salesforce.com/en/content/learn/modules/api_basics/api_basics_bulk


推荐阅读