質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

690閲覧

jsonファイルの並び替え

torn

総合スコア5

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/09/06 02:01

下記のようなjsonファイルをidの数値が低い順にpythonを利用し並べたいのですが、
参考ページのようなものもなくpythono初心者でもあるのでなかなかできずに困っています。
現在jsonファイルの読み込みや出力はできるようになっています。
何かヒントをいただけたらと思います。
よろしくお願いいたします。
data[]やvel[]内の数値は特に気にしなくて大丈夫です。

{"note":[{"id":459, "key":49, "onset":8439, "offset":8853, "data":[0.207217,0.237856,0.703189,0.632460,0.561716,0.491573,0.422461,0.353732,0.285604,0.217703,0.149382], "vel":[28.719618,-68.428553,-68.014736,-68.111162,-68.111162], "acc":[-3839.363177,-15.017707,601.076705,1030.663417,383.030852,601.076705,226.558567,-419.410649,-419.410649], "peak_vel_des":228.542521, "peak_vel_timing_des":61, "peak_acc_des":13343.679494, "peak_acc_timing_des":53, "peak_vel_asc":-89.892946, "peak_vel_timing_asc":391, "peak_acc_asc":-36285.059077, "peak_acc_timing_asc":83, "mute_timing":324, "onset_noise":28.719618, "offset_noise":-68.111162, "vel_escapement":215.651460, "escapement_timing":72, "bottom_timing":81, "bottom_noise":194.893422, "max_depth":10.505665, "pressing_duration":18, "release_timing":99} ,{"id":500, "key":49, "onset":8876, "offset":8976, "data":[0.200358,0.207616,0.219705,0.240262,0.269889,0.309996,0.360777,0.424461,0.500646,0.588722,1.902921,1.684066,1.474861,1.274539,1.081682,0.895655,0.717895,0.550822,0.393436,0.243297,0.100190], "vel":[9.673632,-196.589957,-189.441586,-181.893331,-172.416549,-162.229415,-153.762440,-146.622914,-146.622914], "acc":[4831.983447,7466.014922,6830.726751,8265.783110,10687.780948,9686.487353,7247.464088,7031.586566,7031.586566], "peak_vel_des":245.569979, "peak_vel_timing_des":41, "peak_acc_des":12902.906755, "peak_acc_timing_des":6, "peak_vel_asc":-308.041301, "peak_vel_timing_asc":79, "peak_acc_asc":-38698.888571, "peak_acc_timing_asc":61, "mute_timing":78, "onset_noise":9.673632, "offset_noise":-146.622914, "vel_escapement":142.476336, "escapement_timing":52, "bottom_timing":60, "bottom_noise":0.000000, "max_depth":8.672099, "pressing_duration":0, "release_timing":60} ,{"id":485, "key":51, "onset":8776, "offset":8920, "data":[0.222983,3.799932,3.498553,3.200267,2.905914,2.618299,2.342266,2.083075,1.841335,1.618805,1.416808,1.235352,1.070921,0.920901,0.785061,0.665834,0.564075,0.480437,0.414924,0.368626,0.340678], "vel":[51.752105,-37.122910,-37.122910], "acc":[4792.246921,4792.246921,2194.668181,-866.584732,-5691.376373,-8507.690078,-10706.510057,-9390.547170,-6991.614070,-2398.385930,220.537279,2405.434383,3049.679521,5026.159906,6766.924992,8081.085565,7652.131568,5892.744638,5661.181137,20539.386930,17025.859208,14410.913768,14179.897437,16613.177571,17468.736081,18119.482502,18126.356925,19213.652965,18351.593173,18351.593173], "peak_vel_des":198.947037, "peak_vel_timing_des":65, "peak_acc_des":10720.432933, "peak_acc_timing_des":50, "peak_vel_asc":-301.358519, "peak_vel_timing_asc":124, "peak_acc_asc":-55058.397370, "peak_acc_timing_asc":157, "mute_timing":121, "onset_noise":51.752105, "offset_noise":-37.122910, "vel_escapement":192.932090, "escapement_timing":72, "bottom_timing":87, "bottom_noise":29.702976, "max_depth":10.009114, "pressing_duration":3, "release_timing":90} ,{"id":516, "key":51, "onset":8919, "offset":9055, "data":[0.329991,0.335429,0.359456,0.402922,0.466887,0.552059,0.657326,0.780257,0.919146,1.070915,1.228144,1.377966,1.501580,1.580649,1.604658,1.576472,1.508552,1.417478,1.318550,1.224213,1.142320,1.078119,1.034221,1.011520,1.008897,1.025926,8.126541,7.892866,7.650035,7.399351,7.140148,6.871328,6.594860,6.312729,6.026005,5.733606,5.433789,5.126099,4.812287,4.496521,4.179016,3.858669,3.533289,3.204856,2.875761,2.549305,2.226768,1.911426,1.606800,1.315501,1.038591,0.777854,0.532639,0.301161,0.084962], "vel":[14.732496,14.732496,33.746409,53.715477,74.568576,95.219947,114.098643,130.910025,145.329081,154.498824,153.525415,136.718104,101.341466,51.539076,-2.088204,-48.053495,-79.496962,-95.000872,-96.632810,-88.114634,-73.046633,-54.049533,-33.299467,-12.662019,7.202567,26.533990,45.094000,62.233652,76.657047,87.131633,93.567125,95.874138,92.925142,85.706029,-223.838057], "acc":[18587.308473,13327.235581,14388.861324,16173.197352,15521.903761,13737.020564,15279.847984,15279.847984], "peak_vel_des":218.914657, "peak_vel_timing_des":72, "peak_acc_des":21208.581166, "peak_acc_timing_des":4, "peak_vel_asc":-328.764066, "peak_vel_timing_asc":124, "peak_acc_asc":-55058.397370, "peak_acc_timing_asc":13, "mute_timing":119, "onset_noise":14.732496, "offset_noise":-223.838057, "vel_escapement":208.874538, "escapement_timing":76, "bottom_timing":89, "bottom_noise":51.100538, "max_depth":10.040132, "pressing_duration":5, "release_timing":94} ,{"id":518, "key":49, "onset":9006, "offset":9111, "data":[0.225151,0.292873,0.366623,0.447036,0.535315,0.631240,0.735232,0.846885,0.965392,1.090944,1.225557,1.371073,1.525865,1.687893,1.857972,2.038964,2.230826,2.433562,2.646591,2.869692,3.101852,3.342490,3.588368,3.835251,4.080117,4.322963,4.567822,4.820542,5.087373,5.372138,5.676864,6.000326,6.340522,6.693410,7.055364], "vel":[70.736354,324.281002,302.579284,288.376295,280.445853], "acc":[6028.790232,6028.790232,6661.910072,7866.231812,7646.017628,8067.091627,7661.035335,6854.257172,7044.435942,9061.880228,10901.490139,9277.757750,7234.614712,8052.073919,10911.666203,10871.454724,10873.118074,10293.403460,10071.181555,9059.711896,8477.989561],

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

並べ替えたいリストの各要素がidという共通のキーを持つ辞書なのであれば、idの値によって並べ替えるとよいです。

Python

1dat = {"note":[{"id":3,"Val":3},{"id":2,"Val":2},{"id":1,"Val":1}]} 2 3dat["note"] = sorted( dat["note"], key=lambda v:v["id"]) 4print(dat) # {'note': [{'id': 1, 'Val': 1}, {'id': 2, 'Val': 2}, {'id': 3, 'Val': 3}]}

投稿2021/09/06 02:58

can110

総合スコア38278

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

torn

2021/09/06 03:10

jsonファイルから読み込んで並び替えとなると、dat=のところはどうすればいいでしょうか...? 初心者なもので理解できず申し訳ありません。 よろしくお願いします。
can110

2021/09/06 04:03

json文字列をjsonモジュールなりでPythonデータ化したものがdatと想定して回答しています。 ソートした結果をファイル出力したい場合は、同じくjsonモジュールなりで逆の手順を踏めばよいです。
torn

2021/09/06 05:21

---- import json json_open = opne('ファイル名.json', 'r') json_dict = json.load(json_open) json_dict["note"]=sorted(json_dict["note"], key = lambda v:v["id"]) with open('出力ファイル名.json', mode='wt',encoding='UTF-8')as file json.dump(json_dict, file, ensure_ascii = False) ---- と書いてみたのですが、間違えているのか出力ファイルが開けません。 何度も申し訳ないのですが、教えていただけますでしょうか。
torn

2021/09/06 05:52

ありがとうございます! jsonファイル読み込み json文字列を辞書に変換 教えていただいた並び替え 辞書をjson文字列として整形して出力、保存 と言う流れであってますでしょうか?
can110

2021/09/06 13:14

ご自身のやりたいことに沿っているのであればよいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問