Вот пример, который я тестировал.Дайте мне знать, если это то, что вы ищете.
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'}}
Я не уверен, как вы вызываете функцию как Rest API или веб-действие.
Я тестировал приведенный выше код как веб-действиефункционировать и получил результат.Обратите внимание, что расширение говорит http
в конце URL-адреса, что заставляет функцию возвращать полезные нагрузки не по умолчанию (Json).
Пример URL-адреса - https://openwhisk.ng.bluemix.net/api/v1/web/demo_dev/hello-world/helloworld.http
Ответ получен -
Тело:
billing_for_org, billing_for_org2
$ 100, $ 200
Заголовки:
Content-Type→ текст / CSV;charset = UTF-8 Content-Length → 45 Connection → keep-alive Расположение содержимого → вложение; имя файла = myfilename.csv
Ссылка - https://console.bluemix.net/docs/openwhisk/openwhisk_webactions.html#openwhisk_webactions. https://developer.ibm.com/answers/answers/406943/view.html