見出し画像

初めまして

タイトル		: 初めまして
投稿日		: 2024-04-16
投稿者 {5}	: 
	ユーザーID	: mstrknzk
	X [1]		: 
		0		: "https://twitter.com/mstrknzk"
	Tumblr [2]	: 
		0		: "https://mstrknzk-photo.tumblr.com/"
		1		: "https://mstrknzk-vr.tumblr.com/"
	cluster [1]	: 
		0		: "https://cluster.mu/u/mstrknzk"
	VRChat [1]	: 
		0		: "https://vrchat.com/home/user/usr_31b041a9-0a9b-4cf6-a461-914a50e6403c"
内容 [4]	: 
	0 自己紹介 {9}	: 
		私			: mstrknzk
		旧名		: misutirukunnzuki
		読み方		: null
		趣味 [4]	: 
			0		: ギター
			1		: 回路
			2		: 写真
			3		: VR
		仕事 [2]	: 
			0		: プログラマ
			1		: null
		住処 [1]	: 
			0		: null
		部活 [3]	: 
			0		: バドミントン部
			1		: ロボコン部
			2		: 帰宅部
		好き {5}		: 
			時間 {2}	: 
				from	: 21:00:00
				to		: 27:00:00
			飲食物 [2]	: 
				0		: 抹茶関連の何か
				1		: Dr Pepper
			音楽 [3]	: 
				0		: Mr.Children
				1		: Bank Band
				2		: ウカスカジー
			ゲーム [6]	: 
				0		: PORTAL シリーズ
				1		: 真三國無双 シリーズ
				2		: 真戦国無双
				3		: クラッシュバンディクー 3
				4		: グラディウス
				5		: Sniper Ghost Warrior Contracts シリーズ
			色			: 緑
		嫌い {3}		: 
			時間 {2}	: 
				from	: 06:00:00
				to		: 12:00:00
			飲食物 [4]	: 
				0		: 黒蜜
				1		: 黒糖
				2		: メープル
				3		: 蜂蜜
			人混み		: null
	1 no+eを始めた理由 {3}	: 
		Outputの練習 {2}	: 
			現状 {2}		: 
				書く事		: 苦手
				話す事		: 苦手
			対策 [1]		: 
				0			: 何らかの媒体への記録
		Outputの継続 {3}	: 
			現状 {1}		: 
				継続して何かを投稿する事	: 苦手
			対策 [2]		: 
				0			: 目に触れやすい媒体で投稿する
				1			: 監視されていることを意識する
			懸念 {1}		: 
				ネタが無い [3]	: 
					0			: 不定期
					1			: 忘却
					2			: 継続不能
		no+eの記事を見るようになった	: null
	2 記事の形式 {3}	: 
		この形式について {5}	: 
			名前	: JSON
			正式名称: JavaScript Object Notation
			概要	: JavaScriptというプログラミング言語におけるオブジェクトの書き方を参考に作られたデータフォーマット(データの記述形式)のこと
			用途 [2]: 
				0	: プログラミングで生成したデータを保存できる
				1	: 異なるプログラミング言語・環境間でデータのやり取りができる
			参考・引用文献 [1]	: 
				0	: "https://datamix.co.jp/media/datascience/introduction-to-json/"
		この形式の採用理由 [4]	: 
			0		: 可読性が高い
			1		: データが小さい
			2		: テキストで編集しやすい
			3		: 図化できる
		そうじゃなくて普通に文章で書けよ。。 [9]	: 
			0 [1]	: 
				0	: さっき、言いましたやん。
			1 [3]	: 
				0	: 日本語で文章で書くと、たらたら書いてしまって、結局何が言いたいかも自分でもわからなくなるんですよ。
				1	: しかも、書くのに時間が掛かる。今、これを書くのにだって、もう1日経ったのに。。。
				2	: もう、めんどくさいところで時間を使いたくないんじゃ。
			2 [2]	: 
				0	: あと、文章だと頭に入らないんだよ。
				1	: 余計なことばっか視界に入って、大事な情報を抜き出せないんじゃ。
			3 [3]	: 
				0	: もっと、分かりやすい言語を作ってくれー。
				1	: 分かりやすい言語も作らずに文章で書けとかゆうなー。
				2	: これも脱出の手段の模索として試しとるんじゃー。
			4		: null
			5 [3]	: 
				0	: JSONだったら、階層化出来てイメージしやすいし、
				1	: 図化だってできるし、
				2	: 文章よりやる気出るし、
			6 [3]	: 
				0	: 今のところの改善案ということで、JSONをつかっているから、許して下さい。
				1	: 頭の中のデータ化だってできるし、
				2	: フォーマットだってある程度できていながら、自由も利くし、
			7		: null
			8 [2]	: 
				0	: この書き方もいま模索中なので、ちょこちょこ変わってしまうと思いますが、
				1	: これでやってみたいと思います。
	3 今後の投稿 [266]		: 
		0 ワールド制作 {2}		: 
			ワールド [4]			: 
				0				: MOON-2023-11-24
				1				: Beyond-Here-2023-12-26
				2				: Home (シサクキ) Ver.0.3
				3				: ライブ会場ホール (仮)
			プラットフォーム		: cluster
		1	: null
		2	: null
		3	: null
		4	: null
		5	: null
		6	: null
		7	: null
		8	: null
		9	: null
		10	: null
		11	: null
		12	: null
		13	: null
		14	: null
		15	: null
		16	: null
		17	: null
		18	: null
		19	: null
		20	: null
		21	: null
		22	: null
		23	: null
		24	: null
		25	: null
		26	: null
		27	: null
		28	: null
		29	: null
		30	: null
		31	: null
		32	: null
		33	: null
		34	: null
		35	: null
		36	: null
		37	: null
		38	: null
		39	: null
		40	: null
		41	: null
		42	: null
		43	: null
		44	: null
		45	: null
		46	: null
		47	: null
		48	: null
		49	: null
		50	: null
		51	: null
		52	: null
		53	: null
		54	: null
		55	: null
		56	: null
		57	: null
		58	: null
		59	: null
		60	: null
		61	: null
		62	: null
		63	: null
		64	: null
		65	: null
		66	: null
		67	: null
		68	: null
		69	: null
		70	: null
		71	: null
		72	: null
		73	: null
		74	: null
		75	: null
		76	: null
		77	: null
		78	: null
		79	: null
		80	: null
		81	: null
		82	: null
		83	: null
		84	: null
		85	: null
		86	: null
		87	: null
		88	: null
		89	: null
		90	: null
		91	: null
		92	: null
		93	: null
		94	: null
		95	: null
		96	: null
		97	: null
		98	: null
		99	: null
		100	: null
		101	: null
		102	: null
		103	: null
		104	: null
		105	: null
		106	: null
		107	: null
		108	: null
		109	: null
		110	: null
		111	: null
		112	: null
		113	: null
		114	: null
		115	: null
		116	: null
		117	: null
		118	: null
		119	: null
		120	: null
		121	: null
		122	: null
		123	: null
		124	: null
		125	: null
		126	: null
		127	: null
		128	: null
		129	: null
		130	: null
		131	: null
		132	: null
		133	: null
		134	: null
		135	: null
		136	: null
		137	: null
		138	: null
		139	: null
		140	: null
		141	: null
		142	: null
		143	: null
		144	: null
		145	: null
		146	: null
		147	: null
		148	: null
		149	: null
		150	: null
		151	: null
		152	: null
		153	: null
		154	: null
		155	: null
		156	: null
		157	: null
		158	: null
		159	: null
		160	: null
		161	: null
		162	: null
		163	: null
		164	: null
		165	: null
		166	: null
		167	: null
		168	: null
		169	: null
		170	: null
		171	: null
		172	: null
		173	: null
		174	: null
		175	: null
		176	: null
		177	: null
		178	: null
		179	: null
		180	: null
		181	: null
		182	: null
		183	: null
		184	: null
		185	: null
		186	: null
		187	: null
		188	: null
		189	: null
		190	: null
		191	: null
		192	: null
		193	: null
		194	: null
		195	: null
		196	: null
		197	: null
		198	: null
		199	: null
		200	: null
		201	: null
		202	: null
		203	: null
		204	: null
		205	: null
		206	: null
		207	: null
		208	: null
		209	: null
		210	: null
		211	: null
		212	: null
		213	: null
		214	: null
		215	: null
		216	: null
		217	: null
		218	: null
		219	: null
		220	: null
		221	: null
		222	: null
		223	: null
		224	: null
		225	: null
		226	: null
		227	: null
		228	: null
		229	: null
		230	: null
		231	: null
		232	: null
		233	: null
		234	: null
		235	: null
		236	: null
		237	: null
		238	: null
		239	: null
		240	: null
		241	: null
		242	: null
		243	: null
		244	: null
		245	: null
		246	: null
		247	: null
		248	: null
		249	: null
		250	: null
		251	: null
		252	: null
		253	: null
		254	: null
		255	: null
		256	: null
		257	: null
		258	: null
		259	: null
		260	: null
		261	: null
		262	: null
		263	: null
		264	: null
		265	: null
{
	"タイトル": "初めまして",
	"投稿日": "2024-04-16",
	"投稿者": {
		"ユーザーID": "mstrknzk",
		"X": [
			"https://twitter.com/mstrknzk"
		],
		"Tumblr": [
			"https://mstrknzk-photo.tumblr.com/",
			"https://mstrknzk-vr.tumblr.com/"
		],
		"cluster": [
			"https://cluster.mu/u/mstrknzk"
		],
		"VRChat": [
			"https://vrchat.com/home/user/usr_31b041a9-0a9b-4cf6-a461-914a50e6403c"
		]
	},
	"内容":[
		{
			"自己紹介":{
				"私":"mstrknzk",
				"旧名":"misutirukunnzuki",
				"読み方":null,
				"趣味":[
					"ギター",
					"回路",
					"写真",
					"VR"
				],
				"仕事":["プログラマ",null],
				"住処":[null],
				"部活":[
					"バドミントン部",
					"ロボコン部",
					"帰宅部"
				],
				"好き":{
					"時間":{
						"from":"21:00:00",
						"to":"27:00:00"
					},
					"飲食物":[
						"抹茶関連の何か",
						"Dr Pepper"
					],
					"音楽":[
						"Mr.Children",
						"Bank Band",
						"ウカスカジー"
					],
					"ゲーム":[
						"PORTAL シリーズ",
						"真三國無双 シリーズ",
						"真戦国無双",
						"クラッシュバンディクー 3",
						"グラディウス",
						"Sniper Ghost Warrior Contracts シリーズ"
					],
					"色":"緑"
				},
				"嫌い":{
					"時間":{
						"from":"06:00:00",
						"to":"12:00:00"
					},
					"飲食物":[
						"黒蜜",
						"黒糖",
						"メープル",
						"蜂蜜"
					],
					"人混み":null
				}
			}
		},
		{
			"no+eを始めた理由":{
				"Outputの練習":{
					"現状":{
						"書く事": "苦手",
						"話す事": "苦手"
					},
					"対策":[
						"何らかの媒体への記録"
					]
				},
				"Outputの継続":{
					"現状":{
						"継続して何かを投稿する事": "苦手"
					},
					"対策":[
						"目に触れやすい媒体で投稿する",
						"監視されていることを意識する"
					],
					"懸念":{
						"ネタが無い":[
							"不定期",
							"忘却",
							"継続不能"
						]
					}
				},
				"no+eの記事を見るようになった":null
			}
		},
		{
			"記事の形式":{
				"この形式について":{
					"名前":"JSON",
					"正式名称":"JavaScript Object Notation",
					"概要":"JavaScriptというプログラミング言語におけるオブジェクトの書き方を参考に作られたデータフォーマット(データの記述形式)のこと",
					"用途":[
						"プログラミングで生成したデータを保存できる",
						"異なるプログラミング言語・環境間でデータのやり取りができる"
					],
					"参考・引用文献":["https://datamix.co.jp/media/datascience/introduction-to-json/"]
				},
				"この形式の採用理由":[
					"可読性が高い",
					"データが小さい",
					"テキストで編集しやすい",
					"図化できる"
				],
				"そうじゃなくて普通に文章で書けよ。。":[
					[
						"さっき、言いましたやん。"
					],
					[
						"日本語で文章で書くと、たらたら書いてしまって、結局何が言いたいかも自分でもわからなくなるんですよ。",
						"しかも、書くのに時間が掛かる。今、これを書くのにだって、もう1日経ったのに。。。",
						"もう、めんどくさいところで時間を使いたくないんじゃ。"
					],
					[
						"あと、文章だと頭に入らないんだよ。",
						"余計なことばっか視界に入って、大事な情報を抜き出せないんじゃ。"
					],
					[
						"もっと、分かりやすい言語を作ってくれー。",
						"分かりやすい言語も作らずに文章で書けとかゆうなー。",
						"これも脱出の手段の模索として試しとるんじゃー。"
					],
					null,
					[
						"JSONだったら、階層化出来てイメージしやすいし、",
						"図化だってできるし、",
						"文章よりやる気出るし、"
					],
					[
						"今のところの改善案ということで、JSONをつかっているから、許して下さい。",
						"頭の中のデータ化だってできるし、",
						"フォーマットだってある程度できていながら、自由も利くし、"
					],
					null,
					[
						"この書き方もいま模索中なので、ちょこちょこ変わってしまうと思いますが、",
						"これでやってみたいと思います。"
					]
				]
			}
		},
		{
			"今後の投稿":[
				{
					"ワールド制作":{
						"ワールド":[
							"MOON-2023-11-24",
							"Beyond-Here-2023-12-26",
							"Home (シサクキ) Ver.0.3",
							"ライブ会場ホール (仮)"
						],
						"プラットフォーム":"cluster"
					}
				},
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null,
				null
			]
		}
	]
}
import json
import unicodedata


def string_width(string):
    u"""
    Measure rendering width of string.
    Count ZENKAKU-character as 2-point and non ZENKAKU-character as 1-point

    >>> string_width(u"abc")
    3
    >>> string_width(u"あいう")
    6
    >>> string_width(u"あいc")
    5
    """
    width = 0
    for c in string:
        char_width = unicodedata.east_asian_width(c)
        if char_width in u"WFA":
            width += 2
        else:
            width += 1

    return width

report = ""
def json_tree(data,index=None,indent=0,parent_list=False):
	global report
	space = "\t" * indent
	if type(data) == dict:
		for i,k in enumerate(data.keys()):
			j = []
			if index != None:
				j.append(str(index)+" ")
			j.append(k)
			width = (max([string_width(_k) for _k in data.keys()]) - string_width(k))
			print([width , width//4])
			j.append("" * (width//4))
			if type(data[k]) == list:
				j.append(f"[{len(data[k])}]")
			elif type(data[k]) == dict:
				j.append("{"+f"{len(data[k].keys())}"+"}")

			j.append("\t: ")
			report += space + "".join(j)
			if type(data[k]) in [list,dict] :
				report += "\n"
			json_tree(data[k],None,indent+1)
			# if type(data[k]) in [dict] :
			# 	report += "\n"
	elif type(data) == list and len(data) > 0:
		if parent_list:
			j = [f"[{len(data)}]" , "\t: " ]
			report += space + "".join(j)
			report += "\n"
		for i,d in enumerate(data):
			json_tree(d,i,indent+bool(parent_list),type(d)==list)
		# report += "\n"
	else:
		j = []
		if index != None :
			j.append(str(index))
			j.append("\t: ")
		else:
			j.append("")
		j.append(str(data) if data != None else "null")
		report += (space if index != None else "") + "".join(j) + "\n"


path = "./20240416.json"

j = None
with open(path,encoding="utf-8") as f:
	j = json.load(f)

json_tree(j,)
print()
with open(path+".txt",mode="w",encoding="utf-8") as f:
	f.write(report)

この記事が参加している募集

自己紹介

この記事が気に入ったらサポートをしてみませんか?