スプレッドシートをPythonの辞書に変換する方法をわかりやすく解説
スプレッドシート(Excelファイル)のデータをPythonの辞書(dict)に変換する最も簡単な方法は、pandasなどの外部ライブラリを利用することです。pandasには、Excelオブジェクトを扱うための便利な機能が数多く用意されており、その中でもto_dict()メソッドを使えば、読み込んだデータを簡単に辞書形式へ変換できます。
基本的な使い方
まず、pandasのExcelFileクラスを使ってExcelファイルを読み込みます。続いて、parse()メソッドでシートの内容をDataFrameとして取得し、最後にto_dict()で辞書に変換します。
サンプルコード
from pandas import *
xls = ExcelFile('my_file.xls')
data = xls.parse(xls.sheet_names[0])
print(data.to_dict())
実行結果
上記のコードを実行すると、以下のようにスプレッドシートのデータが辞書形式で出力されます。
{'id': 10, 'name': 'John'}
ポイントと補足
- sheet_names[0]:ブック内の最初のシートを読み込んでいます。別のシートを扱いたい場合は、インデックスやシート名を変更してください。
- to_dict():引数を指定しない場合は「列名 → 値」の辞書が返されます。
orient引数(例:'records'や'index')を使うことで、行単位の辞書リストなど、さまざまな形式に変換することも可能です。 - ファイル形式:旧形式の
.xlsファイルにはxlrd、新しい.xlsxファイルにはopenpyxlが必要になる場合があります。事前にインストールしておきましょう。
このように、pandasを使えばわずか数行のコードでスプレッドシートのデータをPythonの辞書へ変換でき、その後のデータ加工や分析もスムーズに行えます。
-
Pythonで文字列を辞書(dict)に変換する方法|ast.literal_evalとjson.loadsの使い分け
Pythonでは、文字列形式で表現された辞書データを実際のdictオブジェクトに変換したい場面がよくあります。主な方法としては、標準ライブラリの ast.literal_eval() を使う方法と、json モジュールを使う方法の2つがあります。それぞれの特徴と使い方を詳しく見ていきましょう。 方法1:ast.literal_eval() を使う ast.literal_eval() は、文字列をPythonの式として安全に評価する関数です。任意のコードを実行できてしまう eval() とは異なり、リテラル構造以外は評価しないため、セキュリティ面でも安心して利用できます。 評価できるのは、文
-
【Python】辞書形式の文字列をdict型に変換する2つの安全な方法
はじめにPythonでは、文字列として表現された辞書(例:{foo: bar})を、実際の辞書(dict型)オブジェクトに変換したい場面がよくあります。この記事では、代表的な2つの変換方法である ast.literal_eval() と json.loads() の使い方を解説します。方法1: ast.literal_eval() を使うast.literal_eval() を使うと、文字列をPythonの式として安全に評価できます。この関数は、式ノードまたはPython式を含む文字列を評価しますが、許可されているのは文字列・数値・タプル・リスト・辞書・ブール値・Noneといったリテラル構造の