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

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

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

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

238閲覧

e-statのAPI取得後のJSONから一部を取得する方法【Python】

shin_qqq

総合スコア5

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2023/03/11 15:44

実現したいこと

e-statからAPIで家計調査のデータ取得を進めています。
データの取得まではできたのですが、データに対応するメタ情報を
JSONから取り出す部分で躓いているためご教示をお願い致します。

前提

下記でJSONを取得までできています。

python

1import requests 2import pandas as pd 3 4REQUEST_URL = 'http://api.e-stat.go.jp/rest/3.0/app/json/getStatsData?cdCat01=001100000%2C010000000%2C010100000%2C010110001%2C010120000%2C010120010%2C010120020%2C010130000%2C010130010%2C010130020%2C010130030%2C010130040%2C010130050%2C010130060%2C010130070%2C010140000%2C010140010%2C010140020%2C010140030%2C010200000%2C010210000%2C010211000%2C010211010%2C010211020%2C010211030%2C010211040%2C010211050%2C010211060%2C010211070%2C010211080%2C010211090%2C010211100%2C010211110%2C010211120%2C010211130%2C010211140%2C010211150%2C010211160%2C010212000%2C010212010%2C010212020%2C010212030%2C010212040%2C010212050%2C010220000%2C010220010%2C010220020%2C010220030%2C010220040%2C010220060%2C010230000%2C010230010%2C010230020%2C010230030%2C010230040%2C010240000%2C010240010%2C010240020%2C010240030%2C010240040%2C010240050%2C010300000%2C010310000%2C010310010%2C010310020%2C010310030%2C010310040%2C010310050%2C010320000%2C010320010%2C010320020%2C010320030%2C010320040%2C010400000%2C010410001%2C010420000%2C010420010%2C010420020%2C010420030%2C010420040%2C010420050%2C010430001%2C010500000%2C010510000%2C010511000%2C010511010%2C010511020%2C010511030%2C010511040%2C010511050%2C010511060%2C010511070%2C010511080%2C010512000%2C010512010%2C010512020%2C010512030%2C010512040%2C010512050%2C010512060&cdTime=2022001212&cdCat02=03&appId=3ae1892822fa191aa8a3c3ceca2c551bef0b0406&lang=J&statsDataId=0003343671&metaGetFlg=Y&cntGetFlg=N&explanationGetFlg=Y&annotationGetFlg=Y&sectionHeaderFlg=1&replaceSpChars=0' 5 6res = requests.get(REQUEST_URL).json() 7 8class_objs = res['GET_STATS_DATA']['STATISTICAL_DATA']['CLASS_INF']['CLASS_OBJ'] 9print(class_objs) 10

そこから、分類名称や都道府県の一覧表を取得したいです。
下記イメージです。

イメージ説明

イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

python

1df = pd.json_normalize(class_objs) 2 3# 品目分類 4items = df.query('`@id` == "cat01"')['CLASS'].values[0] 5items = pd.DataFrame(items)[['@code', '@name']].set_axis(['code', '品目分類'], axis=1) 6 7# 都道府県一覧 8area = df.query('`@id` == "area"')['CLASS'].values[0] 9area = pd.DataFrame(area)[['@code', '@name']].set_axis(['code', '地域区分'], axis=1) 10 11print(items) 12print(area) 13 14# code 品目分類 15# 0 001100000 消費支出 16# 1 010000000 1 食料 17# 2 010100000 1.1 穀類 18# 3 010110001 1.1.1 米 19# 4 010120000 1.1.2 パン 20# .. ... ... 21# 95 010512020 251 じゃがいも 22# 96 010512030 252 さといも 23# 97 010512040 253 だいこん 24# 98 010512050 254 にんじん 25# 99 010512060 255 ごぼう 26# 27# [100 rows x 2 columns] 28# 29# code 地域区分 30# 0 00000 全国 31# 1 01003 01100 札幌市 32# 2 02003 02201 青森市 33# 3 03003 03201 盛岡市 34# 4 04003 04100 仙台市 35# .. ... ... 36# 48 14004 14130 川崎市 37# 49 14150 14150 相模原市 38# 50 22004 22130 浜松市 39# 51 27004 27140 堺市 40# 52 40003 40100 北九州市

投稿2023/03/11 23:51

melian

総合スコア19714

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問