python - 使用 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')])])])
解决方案
“我不想要的 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
推荐阅读
- java - 使用wiremock时连接被拒绝
- c++ - 为什么在新的 IDE 中必须使用命名空间 std,而用 Turbo C++/Borland C++ 编写的程序不需要命名空间 std?
- javascript - 如何禁用按钮并更改此代码上的按钮文本?
- pandas - 删除索引中基于 df 的条件中的行
- c++ - 为什么在 std::istream_iterators 上使用的 std::find_if 似乎返回最后一个元素?
- java - 克隆有限的多维
- amazon-web-services - 使用 JDBC 驱动程序的 Hive EMR (AWS) 的 Tibco 7.14 连接问题
- python - Pandas DF NotImplementedError:使用 MultiIndex 列写入 Excel 且没有索引('index'=False)尚未实现
- javascript - 如何在 Firebase 上托管的反应项目中提供资产路径?
- jquery - 随机化顺序
- 元素,但按类对它们进行分组