我正在使用Python Simple-Salesforce通过SOQL查询数据.我知道SOQL语法中不支持"SELECT*",所以我想创建一个Python脚本来收集要插入SELECT语句的所有字段的字符串列表.以下是我描述帐户对象的方式:
from simple_salesforce import Salesforce
from simple_salesforce import SFType
#(credentials hidden)
sf = Salesforce(username=username, password=password,
security_token=security_token, sandbox=True,
client_id='mwheeler App')
desc = sf.Account.describe()
print(desc)
Run Code Online (Sandbox Code Playgroud)
如何从下面显示的有序词典中将字段名称提取到字符串列表中?
desc:
OrderedDict([('actionOverrides',[]),('activateable',False),('childRelationships',[OrderedDict([('cascadeDelete',False),('childSObject','Account'),('deprecatedAndHidden ',False),('field','ParentId'),('junctionIdListNames',[]),('junctionReferenceTo',[]),('relationshipName','ChildAccounts'),('restrictedDelete',False) ]),OrderedDict([('cascadeDelete',True),('childSObject','AccountCleanInfo'),('deprecatedAndHidden',False),('field','AccountId'),......
我将使用字符串列表来选择所有字段:
query = sf.query_all("SELECT string_list FROM Account")
Run Code Online (Sandbox Code Playgroud) 我正在对单个时间序列数据帧执行滚动中值计算,然后我想连接/附加结果。
# UDF for rolling median
median_udf = udf(lambda x: float(np.median(x)), FloatType())
series_list = ['0620', '5914']
SeriesAppend=[]
for item in series_list:
# Filter for select item
series = test_df.where(col("ID").isin([item]))
# Sort time series
series_sorted = series.sort(series.ID,
series.date).persist()
# Calculate rolling median
series_sorted = series_sorted.withColumn("list",
collect_list("metric").over(w)) \
.withColumn("rolling_median", median_udf("list"))
SeriesAppend.append(series_sorted)
SeriesAppend
Run Code Online (Sandbox Code Playgroud)
[DataFrame[ntwrk_genre_cd: string, date: date, mkt_cd: string, syscode: string, ntwrk_cd: string, syscode_ntwrk: string, metric: double, list: array, rolling_median: float], DataFrame[ntwrk_genre_cd: string, date: date, mkt_cd:字符串,syscode:字符串,ntwrk_cd:字符串,syscode_ntwrk:字符串,度量:双精度,列表:数组,rolling_median:float]]
当我尝试 .show() 时:
'list' object has no …Run Code Online (Sandbox Code Playgroud)