Python Pandas / Отдел продаж SOQL: как передать список в запрос SOQL, используя для l oop? - PullRequest
0 голосов
/ 24 марта 2020

Я хочу создать код, который раздражает список, и использовать его в запросе SOQL для получения вывода и добавления к листу Excel.

Это мой код, есть ли любой более чистый способ сделать это.

 ExlReport=pd.read_excel(ExlReportPath,sheet_name=ExlSheetName)
 CaseNumberList = [] IdList = [] IdList = ExlReport['Id']

 for Id in IdList:
             results = sf.query_all ("SELECT LastModifiedDate,Case,Id FROM Case_Note  WHERE Case = '%s' ORDER BY LastModifiedDate ASC" %
 soqlEscape(Id)) sf_df =
 pd.DataFrame(results['records']).drop(columns='attributes')

Ожидаемый результат:

  LastModifiedDate             Case           Id 
0  2020-02-19T23:31:35.000+0000  xxxxxxxxxxxx  yyyyyyyyyyyy  
1  2020-02-19T23:31:43.000+0000  xxxxxxxxxxxx  yyyyyyyyyyyy 
2  2020-03-11T20:48:54.000+0000  xxxxxxxxxxxx  yyyyyyyyyyyy  

Вывод получаю:

0  2020-02-19T23:31:35.000+0000  xxxxxxxxxxxx  yyyyyyyyyyyy  
1  2020-02-19T23:31:43.000+0000  xxxxxxxxxxxx  yyyyyyyyyyyy 
2  2020-03-11T20:48:54.000+0000  xxxxxxxxxxxx  yyyyyyyyyyyy  

 new_axis = axis.drop(labels, errors=errors)
  File "C:\xxxxxxx", line 5018, in drop
    raise KeyError(f"{labels[mask]} not found in axis")
KeyError: "['attributes'] not found in axis"

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Я решил проблему с помощью dropna , чтобы можно было аккуратно и аккуратно передать кадр данных на лист Excel.

sf_df=(sf_df).dropna(axis=0,how='any')
Appended_df=pd.DataFrame((sf_df).drop(columns='attributes'))

Проверьте эту ссылку для dropna .

Полный код:

    import pandas as pd
    ExlReport=pd.read_excel(ExlReportPath,sheet_name=ExlSheetName)
    CaseNumberList = []
    IdList = [] 
    IdList = ExlReport['Id']
    Appended_df = pd.DataFrame()
    sf_df=pd.DataFrame()


    for Id in IdList:
           results = sf.query_all ("SELECT LastModifiedDate,Case,Id FROM Case_Note  WHERE Case='%s' ORDER BY LastModifiedDate ASC" % soqlEscape(Id)) 
           sf_df =pd.DataFrame(results['records']).drop(columns='attributes')
           df = pd.DataFrame(results['records'])
           sf_df = sf_df.append(df)

    sf_df=(sf_df).dropna(axis=0,how='any')
    Appended_df=pd.DataFrame((sf_df).drop(columns='attributes'))
0 голосов
/ 24 марта 2020
for Id in IdList:
         results = sf.query_all ("SELECT LastModifiedDate,Case,"+Id+" FROM Case_Note  WHERE Case = '%s' ORDER BY LastModifiedDate ASC" % soqlEscape(Id))

После этого я добавляю данные в df с каждого Id:

df.append(results)
...