所以我有一个从设备到我的烧瓶服务器的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请求后删除了撇号分隔符。我怎样才能在变量周围添加分隔符?
答案 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"}\''