首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax数据元素是数组,导致Python意外查询字符串参数。

Ajax数据元素是数组,导致Python意外查询字符串参数。
EN

Stack Overflow用户
提问于 2018-08-13 03:31:20
回答 1查看 80关注 0票数 0

我使用以下调用序列对后端Python程序进行Ajax调用:

代码语言:javascript
复制
var dataArray = {

 "company_id":company_id,
 "plan_id":plan_id,
 "demographics_to_save":demographics_to_save,
 "takeup":takeup,
 "number_of_employees_with_dependents":total_deps,
 "percentMale":male_pct / 100,
 "percentEmployeesWithDependents":deps_pct / 100


   };

$.ajax({
  url: "http://ec2.xx.xx.xx.compute-1.amazonaws.com:8080/save_census_manual",
  dataType: 'json',
  async: false,
  data: dataArray,
  success: function(data) {
    company_id = data.company_id;
    plan_id = data.plan_id;



  } // success
});   

变量: demographics_to_save是一个嵌套数组,如Chrome控制台中所示:

dataArray {company_id: 84,plan_id: 61,demographics_to_save:数组(10),占用:"0.68",number_of_employees_with_dependents: 2,…Company_id: 84demographics_to_save:数组(10)0:数组(4)0: 21: 12: 13: 1长度: 4__proto__:数组(0)1:(4) 0,0,0,00: 01: 02: 03: 0长度: 4__proto__:数组(0)2:(4) 0,0,0,03:(4) 0,0,04:(4) 0,0,05:(4)0,0,05:(4)0,0,0,006:(4) 0,0,0,07:(4) 0,0,0,00: 01: 02: 03: 0长度: 4__proto__:数组(0)8:(4) 0,0,0,09:(4)0,0,0,0长度: 10__proto__:数组(0)number_of_employees_with_dependents:2% 2percentEmployeesWithDependents: 0.67%0.68: 0.67plan_id: 61个接收:"0.68"proto:Object

调用Ajax调用时,Python使用: 404未找到意外查询字符串参数进行响应: demographics_to_save3、demographics_to_save1、demographics_to_save2、demographics_to_save7、demographics_to_save8、demographics_to_save6、demographics_to_save、demographics_to_save9、demographics_to_save5、demographics_to_save4

回溯(最近一次调用):文件"/usr/local/lib/python3.5/dist-packages/cherrypy/_cpdispatch.py",第60行,在 call #en0# self.callable(*self.args,**self.kwargs) TypeError: save_census_manual()中有一个意外的关键字参数'demographics_to_save2‘

在处理上述异常的过程中,发生了另一个异常:

追溯(最近一次调用):文件"/usr/local/lib/python3.5/dist-packages/cherrypy/_cprequest.py",行631,在响应self._do_respond(path_info)文件"/usr/local/lib/python3.5/dist-packages/cherrypy/_cprequest.py",行690中,在_do_respond response.body = self.handler() File "/usr/local/lib/python3.5/dist-packages/cherrypy/lib/encoding.py",第221行中,在call self.body = self.oldhandler(*args,**kwargs)文件第66行中,在call raise sys.exc_info()1 File self.body第64行中,在call test_callable_spec(self.callable,self.args,文件"/usr/local/lib/python3.5/dist-packages/cherrypy/_cpdispatch.py",第197行,在test_callable_spec raise cherrypy.HTTPError(404,message=message) cherrypy._cperror.HTTPError:(404,‘意外查询字符串参数: demographics_to_save3,demographics_to_save1,demographics_to_save2,demographics_to_save7,demographics_to_save8,demographics_to_save6,demographics_to_save,demographics_to_save9,demographics_to_save5,demographics_to_save4')

Python代码是一个简单的函数def save_census_manual(company_id、plan_id、demographics_to_save、takeup、number_of_employees_with_dependents、percentMale、percentEmployeesWithDependents):

一些代码

返回

我想知道为什么会发生所有意外的查询字符串参数错误(见上文)。

我正在使用CherryPy,当Cherrypy创建对“违犯”函数的调用时,调用如下所示:dependents=2&percentMale=67&percentEmployeesWithDependents=67

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 17:41:13

通过更改调用函数(通过Ajax)来解决这个问题:"demographics_to_save":JSON.stringify(demographics_to_save),

...then在后端代码(Python)中,demographics_to_save = json.loads(demographics_to_save)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51814857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档