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

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

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

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

Python

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

Q&A

解決済

2回答

2164閲覧

jsonのパース方法,python

rtakar

総合スコア21

JSON

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

Python

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

0グッド

0クリップ

投稿2017/06/01 13:31

###使用言語
python

###やりたいこと
jsonのパース方法が知りたい
子どもの部分だけを抜き取りたいです

json

1{ 2 ハンバーグ: { 3 分類: '洋食', 4 主成分: 'タンパク質' 5 }, 6 カレー: { 7 分類: '洋食', 8 主成分: { 9 ルー: 'タンパク質', 10 ライス: '炭水化物' 11 } 12 }, 13 親子丼: { 14 分類: '和食', 15 主成分: { 16: 'タンパク質', 17 ご飯: '炭水化物' 18 } 19 } 20}

例えばこのようなjsonがあるとき

json

1{ 2 主成分: 'タンパク質' 3 主成分: { 4 ルー: 'タンパク質', 5 ライス: '炭水化物' 6 } 7 主成分: { 8: 'タンパク質', 9 ご飯: '炭水化物' 10 } 11} 12

このような形で子のデータのみにしたいです。
また、googleで検索してもヒットしなかったためこちらへの投稿になったのですが、後学のため検索するならどのようなワードで検索すればよかったのかも教えていただければ幸いです。
(もちろんコードだけ教えていただけるだけでも構いませんのでよろしくお願いします)

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

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

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

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

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

guest

回答2

0

ベストアンサー

後学のため検索するならどのようなワードで検索すればよかったのか

「python json」 で ググれば色々出てくるはずです。

また変換後のJSONは、「主成分」というキーが被ってるので実現するのは難しいと思います。それぞれの主成分の中身を抜き出して配列にするくらいならできそうです。

簡単なコードを例を記載ます。

python

1import json 2 3 4JSON_STR = """ 5{ 6 "ハンバーグ": { 7 "分類": "洋食", 8 "主成分": "タンパク質" 9 }, 10 "カレー": { 11 "分類": "洋食", 12 "主成分": { 13 "ルー": "タンパク質", 14 "ライス": "炭水化物" 15 } 16 }, 17 "親子丼": { 18 "分類": "和食", 19 "主成分": { 20 "具": "タンパク質", 21 "ご飯": "炭水化物" 22 } 23 } 24} 25""" 26 27data = json.loads(JSON_STR) 28 29result = [] 30for v in data.values(): 31 result.append(v["主成分"]) 32 33print(json.dumps(result, indent=2, ensure_ascii=False))

結果

[ { "具": "タンパク質", "ご飯": "炭水化物" }, { "ルー": "タンパク質", "ライス": "炭水化物" }, "タンパク質" ]

投稿2017/06/01 15:38

tell_k

総合スコア2120

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

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

0

全く同じものが見つかりましたがこちらが参考になるのではないですか?
連想配列のkeyが子ノードになりそうですが

http://www.weed.nagoya/entry/2016/05/11/105145

投稿2017/06/01 13:43

_Victorique__

総合スコア1392

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問