SOQL:有没有办法 return 列 headers 即使零行满足查询

SOQL: Is there a way to return column headers even if zero rows meet the query

我目前正在使用 simple-salesforce 到 return 一些行并写入一个包含列 headers 的 csv 文件。但是,如果行数为 0,例如'select Id from Lead limit 0' 我刚收到以下回复

OrderedDict([('totalSize', 0), ('done', True), ('records', [])])

有没有一种方法仍然可以获取列 headers,即使查询中有零行 returned。

基本上我需要用 headers 创建 csv,即使有 0 行

很遗憾,没有。一个查询根本就不是 return headers(除非你使用批量 API);在 return 中,由 key-value 对组成的记录列表。

通常的模式是您从 字段列表生成查询,然后该字段列表成为您的列headers。例如,

fields = ["Id", "Name"]
results = sf.query(f"SELECT {', '.join(fields)} FROM Lead")
writer = csv.writer(some_file)
writer.writerow(fields)
# etc., or use a DictWriter if desired.