回答編集履歴

3

改行の追加

2020/11/12 12:11

投稿

bsdfan
bsdfan

スコア4794

test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
  json_str = json.dumps(data_dict[Id], sort_keys=False, ensure_ascii=False, indent=4)
74
74
 
75
- f.write('return ' + json_str)
75
+ f.write('return ' + json_str + '\n')
76
76
 
77
77
 
78
78
 

2

Idごとに出力する部分を追加

2020/11/12 12:11

投稿

bsdfan
bsdfan

スコア4794

test CHANGED
@@ -12,7 +12,11 @@
12
12
 
13
13
 
14
14
 
15
+ Idごとに出力したいということならば、全データを読み込んだ後、
16
+
17
+ Idごとに出力する別のループが必要です。
18
+
15
- こちらについて、いまいちやりたいことがわからなため、回答できません。
19
+ (dict.setdefaultはわかりにく使わずに書きました)
16
20
 
17
21
 
18
22
 
@@ -26,6 +30,8 @@
26
30
 
27
31
 
28
32
 
33
+ data_dict = dict()
34
+
29
35
 
30
36
 
31
37
  for i in range(195):
@@ -36,51 +42,37 @@
36
42
 
37
43
 
38
44
 
45
+ if Id not in data_dict:
46
+
39
- dictA = dict()
47
+ data_dict[Id] = {
48
+
49
+ "TableName": "human",
50
+
51
+ "Item": {
52
+
53
+ "Id": {"S": Id},
54
+
55
+ "List": {"L": []}
56
+
57
+ }
58
+
59
+ }
40
60
 
41
61
 
42
62
 
43
- dict1 = {
44
-
45
- "TableName" : "human"
63
+ data_dict[Id]['Item']['List']['L'].append({"S": S})
46
-
47
- }
48
-
49
- dictA.update(dict1)
50
64
 
51
65
 
52
66
 
53
- dictB = dict()
67
+ # ファイル出力
54
68
 
55
- dictB.setdefault("Item",{})
69
+ with open(path_w, mode='a') as f:
56
70
 
57
- dictA.update(dictB)
71
+ for Id in data_dict.keys():
58
72
 
73
+ json_str = json.dumps(data_dict[Id], sort_keys=False, ensure_ascii=False, indent=4)
59
74
 
60
-
61
- dictC = dict()
62
-
63
- dictC.setdefault("Id",Id)
64
-
65
- dictC.setdefault("List",[])
66
-
67
- dictB["Item"].update(dictC)
68
-
69
-
70
-
71
- dictD = {
72
-
73
- "S": S
74
-
75
- }
76
-
77
- dictC["List"].append(dictD)
78
-
79
-
80
-
81
- with open(path_w, mode='a') as f:
75
+ f.write('return ' + json_str)
82
-
83
- f.write('return ' + json.dumps(dictA, sort_keys=False, ensure_ascii=False, indent=4))
84
76
 
85
77
 
86
78
 

1

追加

2020/11/12 11:48

投稿

bsdfan
bsdfan

スコア4794

test CHANGED
@@ -5,6 +5,14 @@
5
5
  また、理想のJSONとして書かれているものは、正しいJSONではないので`json.dumps()`では出力できません。
6
6
 
7
7
  returnを含まないものをJSON文字列として作成して、`'return '`を前にくっつければいいのではないでしょうか。
8
+
9
+
10
+
11
+ > ・Idが同じときには、Listの配列に追加したい。
12
+
13
+
14
+
15
+ こちらについては、いまいちやりたいことがわからないため、回答できません。
8
16
 
9
17
 
10
18