0
如何在pandas數據框中插入query_result的輸出?查詢結果首先獲取500條記錄,並使用QueryMore拖動剩餘的記錄。我無法將df中的所有內容與列名一起推送。sfdc在pandas數據框中選擇結果
#!/usr/bin/env python3
import beatbox
import sqlalchemy
engine_str = 'mysql+mysqlconnector://db-user:[email protected]/db-name'
engine = sqlalchemy.create_engine(engine_str, echo=False, encoding='utf-8')
connection = engine.connect()
sf = beatbox._tPartnerNS
service = beatbox.Client()
def sync_user(objectSOQL):
service.login('sfdc-username', 'sfdc-creds')
query_result = service.query(objectSOQL)
while True:
for row in query_result[sf.records:]:
SQL_query = 'INSERT INTO user(' \
'id, ' \
'name, ' \
'department, ' \
'sales_team) ' \
'VALUES(' \
'\"{}\",\"{}\",\"{}\",\"{}\"' \
') ON DUPLICATE KEY UPDATE '\
'name = VALUES(name), '\
'department = VALUES(department), '\
'sales_team = VALUES(sales_team) '\
.format(
row[2],
row[3],
row[4],
row[5]
)
# SQL_query = SQL_query.replace('\"None\"', 'NULL')
try:
connection.execute(SQL_query)
except Exception as e:
print(id, e)
if str(query_result[sf.done]) == 'true':
break
query_result = service.queryMore(str(query_result[sf.queryLocator]))
if __name__ == "__main__":
SOQL = 'SELECT id, Name, Department, Sales_Team__c FROM User'
sync_user(SOQL)