#python #pandas #amazon-s3
#python #pandas #amazon-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')
Ответ №1:
Было бы полезно, если бы вы могли предоставить образец файла 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')