Python 3.x 返回csv数据作为IBM Cloud函数的结果

Python 3.x 返回csv数据作为IBM Cloud函数的结果,python-3.x,ibm-cloud,ibm-cloud-functions,Python 3.x,Ibm Cloud,Ibm Cloud Functions,我有一个用Python为IBMCloud编写的函数。对于以下python字典,返回结果为json: return {"billing_for_org": output1, "billing_for_org2:": output2} 有没有办法将此数据作为CSV文件返回?因此,当我调用api时,我可以将数据作为CSV文件下载?以下是我测试的一些示例。让我知道,如果它是你要找的 import sys import csv import io def main(dict): output =

我有一个用Python为IBMCloud编写的函数。对于以下python字典,返回结果为json:

return {"billing_for_org": output1, "billing_for_org2:": output2}

有没有办法将此数据作为CSV文件返回?因此,当我调用api时,我可以将数据作为CSV文件下载?

以下是我测试的一些示例。让我知道,如果它是你要找的

import sys
import csv
import io

def main(dict):
  output = io.StringIO()
  my_dict = {"billing_for_org": "$100", "billing_for_org2": "$200"}
  w = csv.DictWriter(output, my_dict.keys())
  w.writeheader()
  w.writerow(my_dict)
  return {"body": output.getvalue(), 
  "headers": {'Content-Type': 'text/csv','Content-Disposition':'attachment;filename=myfilename.csv'}}
我不确定您是如何将函数作为RESTAPI或Web操作调用的

我将上述代码作为web操作函数进行了测试,并得到了结果。请注意,扩展名在Url的末尾显示了
http
,这使得函数返回非默认(Json)有效负载

示例Url-

收到的答复-

正文:

为组织开票,为组织开票2

100美元,200美元

标题:

内容类型→文本/csv;字符集=UTF-8内容长度→45连接 →保持活动内容处置→附件filename=myfilename.csv

参考- .

当我以web操作的形式运行上述代码时,是否没有下载任何文件?我只是看到这样的结果:{“body”:“billing_for_org,billing_for_org2\r\n$100,$200\r\n”,“headers”:{“Content Disposition”:“attachment;filename=myfilename.csv”,“Content Type”:“text/csv”}Url应该在函数名之后以.http结尾。你是在用.json扩展名吗?。