質問編集履歴

1

修正

2019/12/13 01:12

投稿

trafalbad
trafalbad

スコア303

test CHANGED
@@ -1 +1 @@
1
- pythonでjsonファイルを入れ子構造にする
1
+ 一つのkeyで複数のvalueを持つjsonファイルの作り
test CHANGED
@@ -1,4 +1,34 @@
1
+ 下のような中身のファイルがあります。
2
+
3
+ **ファイルの中身(test_0989.jpg)**
4
+
5
+ ```json
6
+
7
+ {'box2d': {'x1': 0, 'x2': 0, 'y1': 1936, 'y2': 1216}, 'category': 'A'},
8
+
9
+ {'box2d': {'x1': 0, 'x2': 0, 'y1': 1936, 'y2': 1216}, 'category': 'C'},
10
+
11
+ {'box2d': {'x1': 0, 'x2': 0, 'y1': 1936, 'y2': 1216},
12
+
13
+ 'category': 'P'},
14
+
15
+ {'box2d': {'x1': 0, 'x2': 0, 'y1': 1936, 'y2': 1216},
16
+
17
+ 'category': 'Si'},
18
+
19
+ {'box2d': {'x1': 0, 'x2': 0, 'y1': 1936, 'y2': 1216},
20
+
21
+ 'category': 'S'}]}
22
+
23
+ ```
24
+
25
+
26
+
27
+
28
+
1
- 下のような一つのkeyに対して複数のvalueを持つjsonファイルを作成したいです。
29
+ 一つのkeyに対して複数のvalueを持つjsonファイルを作成したいです。
30
+
31
+ **複数のvalueを持つjsonファイル**
2
32
 
3
33
  ```json
4
34
 
@@ -54,94 +84,38 @@
54
84
 
55
85
  ```python
56
86
 
57
- # jsonファイルとファイル名を読み込む
58
-
59
- def natsort_json(json_path):
60
-
61
- load_path = [os.path.join(json_path, path) for path in os.listdir(json_path)]
62
-
63
- filename = [path for path in os.listdir(json_path)]
64
-
65
- sorted_name =[path for path in natsorted(filename)]
66
-
67
- names, jsons = [], []
68
-
69
- for i, (name, jso) in enumerate(zip(sorted_name, load_path)):
70
-
71
- a = open(jso)
72
-
73
- b = json.load(a)
74
-
75
- name = name.strip(".json")
76
-
77
- name = name + ".jpg"
78
-
79
- print(i, name)
80
-
81
- names.append(name)
82
-
83
- jsons.append(b)
84
-
85
- return names, jsons
86
-
87
-
88
-
89
87
  json_path = "****.json"
90
88
 
91
- Name, Jsons = natsort_img(json_path))
89
+ jsons_name, Jsons = natsort_img(json_path))
92
90
 
93
91
  ys = {}
94
92
 
95
- for idx, name in zip(range(len(Jsons)), Name):
93
+ for idx, name in zip(range(len(Jsons)), jsons_name):
96
94
 
97
95
  for i in Jsons[idx]['labels']:
98
96
 
99
97
  ys[name] = {name:[[i['box2d']['x1'], i['box2d']['y1'], i['box2d']['x2'], i['box2d']['y2']]]}
100
98
 
101
- ```
102
99
 
103
100
 
101
+ ys
104
102
 
105
- ```python
103
+ >>>>>>>
106
104
 
107
- {'test_00000.jpg': {'B': [[787, 585, 811, 615]]},
105
+ {'test_00000.jpg': {'B': [[0, 0, 1936, 1216]]},
108
106
 
109
- 'test_00001.jpg': {'P': [[347, 535, 402, 667]]},
107
+ 'test_00001.jpg': {'P': [[0, 0, 1936, 1216]]},
110
108
 
111
- 'test_00002.jpg': {'P': [[1633, 600, 1654, 639]]},
109
+ 'test_00002.jpg': {'P': [[0, 0, 1936, 1216]]},
112
110
 
113
- 'test_00003.jpg': {'P': [[394, 548, 421, 606]]},
111
+ 'test_00003.jpg': {'P': [[0, 0, 1936, 1216]]},
114
112
 
115
- 'test_00004.jpg': {'Si': [[1555, 505, 1597, 522]]},
113
+ 'test_00004.jpg': {'Si': [[0, 0, 1936, 1216]]},
116
114
 
117
- 'test_00005.jpg': {'T': [[1156, 575, 1215, 629]]},
115
+ 'test_00005.jpg': {'T': [[0, 0, 1936, 1216]]},
118
116
 
119
117
  ーーーー
120
118
 
121
119
 
122
120
 
123
121
  ```
124
-
125
-
126
-
127
- #ファイルの中身(test_0989.jpg)
128
-
129
- ```json
130
-
131
- {'box2d': {'x1': 0, 'x2': 0, 'y1': 1936, 'y2': 1216}, 'category': 'A'},
132
-
133
- {'box2d': {'x1': 0, 'x2': 0, 'y1': 1936, 'y2': 1216}, 'category': 'C'},
134
-
135
- {'box2d': {'x1': 0, 'x2': 0, 'y1': 1936, 'y2': 1216},
136
-
137
- 'category': 'P'},
138
-
139
- {'box2d': {'x1': 0, 'x2': 0, 'y1': 1936, 'y2': 1216},
140
-
141
- 'category': 'Si'},
142
-
143
- {'box2d': {'x1': 0, 'x2': 0, 'y1': 1936, 'y2': 1216},
144
-
145
- 'category': 'S'}]}
146
-
147
- ```