こんにちは、エンジニアのオオバです。
- JSON
- YAML
- CSV
- Excel
よく使うファイルのPythonパース方法を
まとめてみたいと思います。
→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら
ライブラリの準備
JSON | YAML | CSV | Excel |
---|---|---|---|
なし | PyYAML | なし | openpyxl |
YAML、Excelは
追加ライブラリを使ってパースします。
追加ライブラリのインストール
$ python3 -m pip install pyyaml
$ python3 -m pip install openpyxl
JSONパース
filename = "json.json"
with open(filename, "r", encoding="utf-8") as f:
json_data = json.load(obj)
# 要素をランダムに選ぶ
data = random.choice(json_data)
print(data["no"], data["sakusya"])
YAMLのパース
# jsonをYAMLに変換
# ※先のJSONパースのjson_dataを使用
yaml_str = yaml.dump(json_data)
yaml_data = yaml.load(yaml_str)
print(yaml_data[0]["sakusya"])
CSVパース
print("===== CSVのパース =====")
filename = "csv.csv"
csv = codecs.open(filename, "r", "utf-8").read()
data = []
rows = csv.split("\r\n")
for row in rows:
if row == "":continue
cells = row.split(",")
data.append(cells)
print(data[0][1], data[0][2])
Excelパース
filename = "excel.xlsx"
book = openpyxl.load_workbook(filename)
# 先頭のシートを得る
sheet = book.worksheets[0]
data = []
for row in sheet.rows:
# 1行目
r0 = row[0].value
# 3行目
r2 = row[2].value
# 空セルを除く
if not r0 is None and not r2 is None:
data.append([
row[0].value,
row[2].value
])
まとめ
よく使うファイル形式を
Pythonでパースする方法を紹介しました。
- JSON
- YAML
- CSV
- Excel
ぼくの場合、
GoogleSpreadシートから
JSON、CSVを受け取って
Pythonで処理することが多いです。
パース方法を忘れた時に
見返してもらえればと思います。
サンプルコード全文
この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいPythonパースライフをお過ごしください。
オススメ記事
検証環境
- macOS BigSur 11.5.2
- Python 3.9.6
- PyYAML v5.4.1
- openpyxl v3.0.8