代码之家  ›  专栏  ›  技术社区  ›  Dustin Ingram

如何从Google云函数返回JSON

  •  0
  • Dustin Ingram  · 技术社区  · 6 年前

    如何在Python中从httpgooglecloud函数返回JSON?现在我有了这样的东西:

    import json
    
    def my_function(request):
        data = ...
        return json.dumps(data)
    

    这将正确返回JSON,但是 Content-Type 是错的 text/html

    1 回复  |  直到 6 年前
        1
  •  12
  •   Dustin Ingram    4 年前

    云函数具有 Flask 可在引擎盖下使用,因此您可以使用 jsonify 函数返回JSON响应。

    在您的功能中:

    from flask import jsonify
    
    def my_function(request):
        data = ...
        return jsonify(data)
    

    这将返回一个 flask.Response 对象与application/json Content-Type data 序列化为JSON。

    import json
    
    def my_function(request):
        data = ...
        return json.dumps(data), 200, {'Content-Type': 'application/json'}
    
        2
  •  2
  •   Ari    5 年前

    import json
    
    def my_function(request):
        data = ...
        return json.dumps(data), 200, {'ContentType': 'application/json'}
    

    做200个合适的响应码,例如404、500、301等。

    如果您是从HTML AJAX请求回复

    return json.dumps({'success': True, 'data': data}), 200, {'ContentType': 'application/json'}
    

    return json.dumps({'error': True}), 404, {'ContentType': 'application/json'}
    
        3
  •  1
  •   daniel rocha    4 年前

    对我来说,json.dumps()在云函数中不起作用。它只在我的本地服务器上工作。所以,我必须自己构建json:

        headers= {
            'Access-Control-Allow-Origin': '*',
            'Content-Type':'application/json'
            }
        id1= "1234567"
        var1= "variable 1"
        text = '{"id1":"'+id1+'","var1":"'+var1+'"}'
        return (text, 200, headers)