Python 테이블 형식의 데이터 집합을 출력하는 Tablib 라이브러리 알아보기
오늘은 Python으로 테이블 형식의 데이터들의 집합을 엑셀, csv, json, yaml 등으로 내보내게 해주는 Tablib를 알아보려 합니다.
Tablib 설치
우선 virtualenv로 파이썬 환경을 분리해줍니다.
pip3 install virtualenv
virtualenv -mvenv env
env라는 이름의 가상 환경을 생성합니다.
source env/bin/activate
가상환경을 폴더에서 활성화합니다.
pip3 install --upgrade pip
pip의 업그레이드가 존재하는지 확인하고 진행합니다.
pip install tablib
pip로 Tablib를 설치합니다.
데이터 집합 다루기
import tablib
headers = ('id', 'name')
data = [
('test_id_1', 'name_1'),
('test_id_2', 'name_2')
]
헤더와 데이터를 준비합니다.
data = tablib.Dataset(*data, headers=headers)
print(data)
print(type(data))
data.append(('test_id_3', 'name_3'))
data.append_col((1, 2, 3), header='count')
print(data)
print(data['id'])
id |name |count
---------|------|-----
test_id_1|name_1|1
test_id_2|name_2|2
test_id_3|name_3|3
위와 같이 테이블 형식으로 출력되며, append로 새로운 행, 열을 추가할 수 있습니다.
json
import tablib
headers = ('id', 'name')
data = [
('test_id_1', 'name_1'),
('test_id_2', 'name_2'),
('test_id_3', 'name_3')
]
data = tablib.Dataset(*data, headers=headers)
print(data.export('json'))
json 형식으로 내보낼 수 있습니다.
yaml
import tablib
headers = ('id', 'name')
data = [
('test_id_1', 'name_1'),
('test_id_2', 'name_2'),
('test_id_3', 'name_3')
]
data = tablib.Dataset(*data, headers=headers)
print(data.export('yaml'))
yaml 형식으로 내보낼 수 있습니다.
csv
import tablib
headers = ('id', 'name')
data = [
('test_id_1', 'name_1'),
('test_id_2', 'name_2'),
('test_id_3', 'name_3')
]
data = tablib.Dataset(*data, headers=headers)
print(data.export('csv'))
csv 형식으로 내보낼 수 있습니다.
pandas
import tablib
headers = ('id', 'name')
data = [
('test_id_1', 'name_1'),
('test_id_2', 'name_2'),
('test_id_3', 'name_3')
]
data = tablib.Dataset(*data, headers=headers)
print(data.export('df'))
판다스의 데이터프레임 형식으로 내보낼 수 있습니다.
단, pandas 패키지가 설치되어 있어야 합니다.
excel
import tablib
headers = ('id', 'name')
data = [
('test_id_1', 'name_1'),
('test_id_2', 'name_2'),
('test_id_3', 'name_3')
]
data = tablib.Dataset(*data, headers=headers)
with open('test.xls', 'wb') as f:
f.write(data.export('xls'))
엑셀 파일로 내보낼 수 있습니다.
Written on June 17, 2019