質問編集履歴
2
コードの追加
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
誤字の訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,4 +51,4 @@
|
|
51
51
|
※※※ちなみに, この"file"のキーの名前は変更すると専用ソフトで認識できなくなるため, 別のキーの名前にするということはできません.
|
52
52
|
|
53
53
|
### 求めている解答
|
54
|
-
このようなJSONファイルをPythonで作る場合
|
54
|
+
このようなJSONファイルをPythonで作る場合, 辞書以外に有効な方法はありますでしょうか? もしくはできればPythonで解決したいですが他に楽, 現実的に解決できそうな方法等ございますでしょうか?
|