我正在发送一个json请求,并在python flask服务中捕获请求参数以进一步处理。但是,当我json转储请求并试图从中收集特定的参数值时,它会给我带来错误
“字符串索引必须是整数,而不是字符串”
这是我在python flask中解析的json:
{"description": "URL: https://sometest.xyz.com/test16/apicall\\n Issue: sample issue\\n Result: fail\\n Severity: low\\n Category: sample category", "issuetype": {"name": "Bug"}, "priority": {"name": "Trivial"}, "project": "sample-project", "summary": "sample issue - https://sometest.xyz.com/test16/apicall"}
我不知道我做错了什么。
下面是我的python烧瓶代码:
from flask import Flask from flask import request from flask import json import httplib httplib.HTTPConnection.debuglevel = 2 app = Flask(__name__) @app.route('/', methods=['POST','GET']) def main(): _jsonreq = json.dumps(request.json) return _jsonreq['project'] if __name__ == "__main__": app.run(debug=True)
您将一个JSON字符串分配给_jsonreq
,但然后尝试像使用字典一样使用它。尝试将代码更改为:
@app.route('/', methods=['POST','GET'])
def main():
_jsonreq = request.json
return _jsonreq['project']
问题内容: 进行Ajax调用时,将contentType设置为application / json而不是默认的x-www-form- urlencoded时,服务器端(在PHP中)无法获取post参数。 在以下工作示例中,如果我在ajax请求中将contentType设置为“ application / json”,则PHP $ _POST将为空。为什么会这样?如何在PHP中正确处理content
问题内容: 进行Ajax调用时,将contentType设置为application / json而不是默认的x-www-form- urlencoded时,服务器端(在PHP中)无法获取post参数。 在以下工作示例中,如果我在ajax请求中将contentType设置为“ application / json”,则PHP $ _POST将为空。为什么会这样?我如何在PHP中正确处理conten
因此,我有以下内容,这似乎令人难以置信的骇客,我一直在想,Go有比这更好的设计库,但我找不到Go处理JSON数据POST请求的例子。它们都是表格帖子。 下面是一个示例请求: 下面是嵌入日志的代码: 肯定有更好的办法,对吧?我只是很难找到最好的做法。 对搜索引擎来说,Go也被称为Golang,这里提到了它,这样其他人就可以找到它。)
请求处理 fpm_run()执行后将fork出worker进程,worker进程返回main()中继续向下执行,后面的流程就是worker进程不断accept请求,然后执行PHP脚本并返回。整体流程如下: (1)等待请求: worker进程阻塞在fcgi_accept_request()等待请求; (2)解析请求: fastcgi请求到达后被worker接收,然后开始接收并解析请求数据,直到req
问题内容: 因此,我得到了以下内容,这些内容似乎难以置信,我一直在想自己Go的库设计得比此更好,但是我找不到Go处理JSON数据POST请求的示例。它们都是POST形式。 这是一个示例请求: 这是代码,其中嵌入了日志: 必须有更好的方法,对吗?我只是为寻找最佳实践而感到困惑。 (Go在搜索引擎中也被称为Golang,在这里提到它,以便其他人可以找到它。) 问题答案: 请使用代替。
我在跟踪https://dev.twitter.com/web/sign-in/implementing使用twitter在我的应用程序中实现OAuth注册。 这是从twitter向用户显示授权此应用程序对话框的服务: 这可以工作并将浏览器重定向到请求授权的Twitter页面。当我在重定向对话框中单击“登录”时,会将我重定向到URL,类似于: https://localhost:9090/app/