Python将分隔符添加到变量

时间:2017-03-04 20:49:53

标签: python json http

所以我有一个从设备到我的烧瓶服务器的HTTP POST,它发送以下消息:

dump= '{"on":"false"}'
r = requests.post('http://127.0.0.1:5000', data=dump,
                  headers={'Content-Type': 'application/json'})

在Flask服务器上,我尝试将PUT转移到我网络上的另一台设备:

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def signal():
    if request.method == 'POST':
        content = request.get_json()
        print(content)
        r = requests.put("http://192.168.1.102/api/F5La7UpN6XueJZUts1QdyBBbIU8dEvaT1EZs1Ut0/lights/5/state/", content)
        return jsonify(content)
    else:
        return 'Hello, world!'

if __name__ == '__main__':
    app.run(debug=True)

唯一的问题是我发送第一个HTTP请求后删除了撇号分隔符。我怎样才能在变量周围添加分隔符?

2 个答案:

答案 0 :(得分:0)

使用类似的东西:

content = "'" + str(request.get_json()) "'"

或者您也可以尝试str.format方式:

content = "'{}'".format(str(request.get_json()))

希望它有所帮助。

编辑:

在格式化之前将request.get_json()的返回dict转换为str

答案 1 :(得分:0)

不确定为什么需要发送带引号的字符串。

也许其中一个有帮助。

In [1]: d = {"on":"false"}

In [2]: repr(d)
Out[2]: "{'on': 'false'}"

In [3]: import json

In [4]: s = json.dumps(d)

In [5]: str(s)
Out[5]: '{"on": "false"}'

In [6]: repr(s)
Out[6]: '\'{"on": "false"}\''