質問編集履歴

2

自分で試したことを記述していなかったため、追記しました。

2019/02/02 09:37

投稿

jiei2717
jiei2717

スコア19

test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,8 @@
15
15
  body = req.stream.read().decode('utf-8')
16
16
 
17
17
  body = unquote(body)
18
+
19
+
18
20
 
19
21
  data = body.split('&')
20
22
 
@@ -37,3 +39,27 @@
37
39
  print(data)
38
40
 
39
41
  ```
42
+
43
+ ```json
44
+
45
+ {'name':'abc'}
46
+
47
+ ```
48
+
49
+ をpostすれば正しく
50
+
51
+ {'name':'abc'}
52
+
53
+ と出力されるのですが、
54
+
55
+ ```json
56
+
57
+ {'user':{'name':'abc'}}
58
+
59
+ ```
60
+
61
+ のようにネストすると正しく出力されません
62
+
63
+ {'user':'name'}と出てしまいました
64
+
65
+ なぜかと思ってコードの四行目にprint(body)を入れてみたところ,user=nameと出力されたのでこの時点で既に正しくないようです。

1

2019/02/02 09:37

投稿

jiei2717
jiei2717

スコア19

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,39 @@
1
1
  Pythonのfalconを使っています。
2
2
 
3
3
  on_postので、リクエストのjsonデータを取得する方法がわかりません。どうしたら良いですか?
4
+
5
+
6
+
7
+ インターネットで調べてこのサイト( https://symfoware.blog.fc2.com/blog-entry-1881.html )と他に幾つか調べて、下記のコードをで実行しました。
8
+
9
+ 初めは上手くいったかのように思えたのですが、後にjsonがネスとしていると正しく受け取れないということが判明しました。インターネットで探してもこれ以外の方法を見つけることが出来ず手詰まりとなってしまいました。
10
+
11
+ ```swift
12
+
13
+ def postDecoder(req):
14
+
15
+ body = req.stream.read().decode('utf-8')
16
+
17
+ body = unquote(body)
18
+
19
+ data = body.split('&')
20
+
21
+ params = {}
22
+
23
+ for param in data:
24
+
25
+ dic = param.split('=')
26
+
27
+ params[dic[0]] = dic[1]
28
+
29
+ return params
30
+
31
+ class Wait_update(object):
32
+
33
+ def on_post(self,req,resp):
34
+
35
+ data = postDecoder(req)
36
+
37
+ print(data)
38
+
39
+ ```