python - (python) 遍历 Salesforce 表列表以提取并加载到 AWS S3
问题描述
大家早上好!
我试图让例程遍历表列表。以下代码适用于单个表“联系人”。我想遍历我的 tablelist.csv 中列出的所有表。我将下面需要在代码中动态修改的选项加粗。由于工作了两个晚上,我的大脑此时已经非常煎熬了,我已经为互联网做好了充分的准备,告诉我这是 Python 介绍的第二章,但我可以利用帮助来克服这个障碍。
import pandas as pd
import boto3
from simple_salesforce import salesforce
li = pd.read_csv('tablelist.csv', header=none)
desc = sf.**Contact**.describe()
field_names = [field['name'] for field in desc['fields']]
soql = "SELECT {} FROM **Contact**".format(','.join(field_names))
results = sf.query_all(soql)
sf_df = pd.DataFrame(results['records']).drop(columns='attributes')
sf_df.to_csv('**contact**.csv')
s3 = boto3.client('s3')
s3.upload_file('contact.csv', 'mybucket', 'Ops/20201027/contact.csv')
解决方案
如果您可以提供 tablelist 文件的示例会有所帮助,但这里有一个刺...您真的只需要获取表列表并循环遍历它。
#assuming table is a column somewhere in the file
df_tablelist = pd.read_csv('tablelist.csv', header=none)
for Contact in df_tablelist['yourtablecolumttoiterateon'].tolist():
desc = sf.**Contact**.describe()
field_names = [field['name'] for field in desc['fields']]
soql = "SELECT {} FROM {}".format(','.join(field_names), Contact)
results = sf.query_all(soql)
sf_df = pd.DataFrame(results['records']).drop(columns='attributes')
sf_df.to_csv(Contact + '.csv')
s3 = boto3.client('s3')
s3.upload_file(Contact + '.csv', 'mybucket', 'Ops/20201027/' + Contact + '.csv')
推荐阅读
- python - 具有增加级别 XP 要求的 Python 调平系统
- flutter - 如何显示默认的Android消息,如(+)按钮并显示自定义小部件代替键盘颤动?
- jenkins - 两个自由式 Jenkins 作业之间的手动批准步骤
- reactjs - 如何使用 react-google-maps “在 Google 地图上查看”
- html5-audio - AudioBuffer 节点 VS MediaElement
- java - 找不到jar命令
- python - 如何在我的 Cloud-Run Flask 应用程序中获取用户的 IP 地址?
- android - GoogleMap 没有在正确的位置缩放
- amazon-web-services - 通过 EC2 Iam 角色和实例 ARN 或实例 IP 限制对 SQS 的访问
- python - 无法在 MAC 上安装 sasl