我是python中的新手并尝试使用这些代码行解析我的应用程序中的数据
json_str = request.body.decode('utf-8')
py_str = json.loads(json_str)
但我在json.loads
期望值:第1行第1列(字符0)
这是我从角度应用程序发送的json格式数据(已更新)
对象{ClientTypeId:6,ClientName:“asdasd”,ClientId:0,PhoneNo:“123”,FaxNo:“123”,NTN:“1238”,GSTNumber:“1982”,OfficialAddress:“sads”,MailingAddress :“asdasd”,RegStartDate:“2016年8月17日”,另外15个......}
这些是我在json_str
ClientTypeId = 5&安培; CLIENTNAME = asdasd&安培;客户端Id = 0&安培; PHONENO = 123&安培; FaxNo = 123&安培; NTN = 123&安培; GSTNumber = 12&安培; OfficialAddress = adkjh&安培; MailingAddress = adjh&安培; RegStartDate = 09 - 8 - 2016&安培; RegEndDate = 16 -Aug-2016&安培;状态= 1&安培; CanCreateUser =真安培; UserQuotaFor = 11&安培; UserQuotaType = 9&安培; MAXUSERS = 132123&安培; ApplyUserCharges =真安培; ApplyReportCharges =真安培; EmailInvoice =真安培; BillingType = 1&安培; UserCharges = 132安培; ReportCharges = 123&安培; MonthlyCharges = 123&安培; BillingDate = 16 - 8 - 2016&安培; usersessionid在324 =
我不知道它有什么问题..任何人都可以提到错误是什么?
答案 0 :(得分:2)
您的数据不是JSON-formatted,甚至不是您更新的答案中包含的数据。您的数据是JavaScript对象,而不是编码字符串。请注意JSON中的“N”:表示法 - 它是一种灵感来自数据如何用JavaScript代码编写的格式,但运行时JavaScript数据不用JSON表示。您粘贴的“JSON”是您的浏览器如何向您表示对象,它不是正确的JSON(可能是{"ClientTypeId": 6, ...}
- 请注意属性名称周围的引号。)
将此数据发送到服务器时,您必须对其进行编码。你认为你发送JSON编码,但你不是。您发送的是“网络表单编码”(类型为application/x-www-form-urlencoded
的数据)。
现在要么必须学习如何从Angular发送JSON格式的数据,要么在Python中使用正确的解析例程:urllib.parse.parse_qs
。根据您使用的库,可能还有一种方便的方法来访问数据,因为这是一个常见的用例。