Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(python)遍历Salesforce表列表以提取并加载到AWS S3中_Python_Pandas_Amazon S3 - Fatal编程技术网

(python)遍历Salesforce表列表以提取并加载到AWS S3中

(python)遍历Salesforce表列表以提取并加载到AWS S3中,python,pandas,amazon-s3,Python,Pandas,Amazon S3,大家早上好 我正试图让一个例程遍历一个表列表。以下代码适用于单个表“contact”。我想遍历我的tablelist.csv中列出的所有表。我将下面需要在代码中动态修改的选项加粗。在这一点上,我的大脑因为工作了两个晚上而变得非常紧张,我已经做好了充分的准备,互联网告诉我这是Python简介的第二章,但是我可以利用这些帮助来克服这个障碍 import pandas as pd import boto3 from simple_salesforce import salesforce li = p

大家早上好

我正试图让一个例程遍历一个表列表。以下代码适用于单个表“contact”。我想遍历我的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')