質問するログイン新規登録

質問編集履歴

2

コードの追加

2020/03/03 08:01

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -51,4 +51,78 @@
51
51
  ※※※ちなみに, この"file"のキーの名前は変更すると専用ソフトで認識できなくなるため, 別のキーの名前にするということはできません.
52
52
 
53
53
  ### 求めている解答
54
- このようなJSONファイルをPythonで作る場合, 辞書以外に有効な方法はありますでしょうか? もしくはできればPythonで解決したいですが他に楽, 現実的に解決できそうな方法等ございますでしょうか?
54
+ このようなJSONファイルをPythonで作る場合, 辞書以外に有効な方法はありますでしょうか? もしくはできればPythonで解決したいですが他に楽, 現実的に解決できそうな方法等ございますでしょうか?
55
+
56
+ ###追記
57
+ 実際に使用しているコードはこちらです
58
+
59
+ ※フォルダ構成は
60
+ Live2D
61
+ ┣ sample(必要なファイルはすべてこの中)
62
+ となっています. 
63
+
64
+ ```Python
65
+ import os
66
+ import glob
67
+ import json
68
+
69
+ os.chdir(os.path.dirname(os.path.abspath(__file__)))
70
+ files = os.listdir("./live2D")
71
+ files_dir = [f for f in files if os.path.isdir(os.path.join("./live2D", f))]
72
+
73
+ for dir in files_dir :
74
+ dic = {"name":"Live2D","model":"moc/Live2D.moc","textures":["Texture2D/texture_00.png"],"motions":{"idle":[{"name":0,"file":0}],"tap":[{"name":0,"file":0}]},"expressions":[{"name":0,"file":0}],"physics":"physics/physics.json","lip_sync":"true"}
75
+
76
+ mocfiles = glob.glob('./live2D/'+str(dir)+'/**/*.moc')
77
+ dic["model"] = str(mocfiles)[len(dir)+13:-2].replace('\','/')
78
+ phyfiles = glob.glob('./live2D/'+str(dir)+'/**/*physics.json')
79
+ dic["physics"] = str(phyfiles)[len(dir)+13:-2].replace('\','/')
80
+
81
+ mtnfiles = glob.glob('./live2D/'+str(dir)+'/**/*.mtn')
82
+ exdic = {"idle":[{"name":0,"file":0}],"tap":[{"name":0,"file":0}]}
83
+
84
+ for mtn in mtnfiles:
85
+ exdic.update({"file":str(mtn)[len(dir)+10:].replace('\','/')})
86
+ dic ["motions"].update(exdic)
87
+
88
+ with open (r"./Live2D/"+dir+"/model.json","w") as f:
89
+ f.write(json.dumps(dic, ensure_ascii=False, indent=4, sort_keys=False, separators=(',', ': ')))
90
+ print(json.dumps(dic, ensure_ascii=False, indent=4, sort_keys=False, separators=(',', ': ')))
91
+
92
+ ```
93
+
94
+ 実行結果
95
+ ```ここに言語を入力
96
+ {
97
+ "name": "Live2D",
98
+ "model": "moc/Live2D.moc",
99
+ "textures": [
100
+ "Texture2D/texture_00.png"
101
+ ],
102
+ "motions": {
103
+ "idle": [
104
+ {
105
+ "name": 0,
106
+ "file": 0
107
+ }
108
+ ],
109
+ "tap": [
110
+ {
111
+ "name": 0,
112
+ "file": 0
113
+ }
114
+ ],
115
+ "file": "motion/rokka_surprised02.mtn"
116
+ },
117
+ "expressions": [
118
+ {
119
+ "name": 0,
120
+ "file": 0
121
+ }
122
+ ],
123
+ "physics": "physics/physics.json",
124
+ "lip_sync": "true"
125
+ }
126
+ ```
127
+
128
+ このように"file": "motion/rokka_surprised02.mtn"しか出力されません. (これは名前順で最後のファイル)

1

誤字の訂正

2020/03/03 08:01

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -51,4 +51,4 @@
51
51
  ※※※ちなみに, この"file"のキーの名前は変更すると専用ソフトで認識できなくなるため, 別のキーの名前にするということはできません.
52
52
 
53
53
  ### 求めている解答
54
- このようなJSONファイルをPythonで作る場合. 辞書以外に有効な方法はありますでしょうか? もしくはできればPythonで解決したいですがほk内楽な方法等ございますでしょうか?
54
+ このようなJSONファイルをPythonで作る場合, 辞書以外に有効な方法はありますでしょうか? もしくはできればPythonで解決したいですが他に, 現実的に解決できそうな方法等ございますでしょうか?