お役立ち

【Python】さまざまな形式(csv,json,xml)を取り扱うときのTips

  • このエントリーをはてなブックマークに追加

Pythonでcsv,json,xmlなどのさまざまな形式のデータを
ファイルから読み込んだり
str型から変換する方法についてのTipsをまとめました。

文字列(str型)から読み込む

まずは、strを適切なデータ形式へ変換する方法をまとめます。

csv形式を読み込む

csv形式の場合、
stringのメソッドを使うのがお手軽です。

csv_string = csv_string.strip("\r")
lines = csv_string.split("\n")
csv_data = map(lambda x:x.split(","),lines)

json形式を読み込む

json形式の場合、
jsonモジュールのloadsメソッドを使いましょう。

import json
json_data = json.loads(json_string)

xml形式を読み込む

xml形式の場合、
xml.etree.ElementTreeを使います。

import xml.etree.ElementTree as ET
xml_data = ET.fromstring(xml_string)
title = xml_data.find('title')

ファイルから読み込む

次にファイルから読み込む場合について説明します。

csvファイルを読み込む

csvファイルを読み込む場合、csvモジュールを利用しましょう。
csv.readメソッドはイテレータを返します。

import csv
with open('data.csv') as f:
    csv_reader = csv.reader(f)
    header = next(csv_reader)
    body = list(csv_reader)

jsonファイルを読み込む

json形式を読み込む場合、jsonモジュールを使います。
loadメソッドで読み込むとlistやdictなど適切な形式で値を返します。

import json
with open('data.json') as f:
    json_data = json.load(f)

xmlファイルを読み込む

xml形式の場合、
xml.etree.ElementTreeを使います。
xmlツリーのインスタンスを返します。

from xml.etree.ElementTree as ET
xml_data = ET.parse('data.xml')
title = xml_data.find('title')
  • このエントリーをはてなブックマークに追加