How to convert json to SQL format in Python
데이터프레임을 객체 SQLite3 DB에 저장하기
python manage.py shell
from Playlist.models import Song
Song.objects.all() -> 빈상태
import pandas pas pd
import json
with open("Playlist/datafiles/노래_데이터.py") as f:
data = json.load(f)
df = pd.DataFrame(data)
import sqlite3
conn = sqlite3.connect('data.db')
cur = conn.cursor()
df.to_sql("Songs", conn)
? 테이블을 만들어야 하나? (아님)
cur.executescript("""
...: create table song_data(
...: song_gn_dtl_gnr_basket,
...: issue_date,
...: album_name,
...: album_id,
...: artist_id_basket,
...: song_name,
...: songs_gn_gnr_basket,
...: artist_name_basket,
...: id
...: );""")
? chunksize가 너무 작았나? (아님)
df.info
로 확인하면 대부분 속성의 데이터타입이 object이다. object타입은 sql의 도메인에 부적합하다.
https://stackoverflow.com/questions/15891038/change-column-type-in-pandas
df[컬럼].astype(타입)
df['song_gn_dtl_gnr_basket'] = df['song_gn_dtl_gnr_basket'].astype('string')
df['issue_date'] = df['issue_date'].astype('string')
df['album_name'] = df['album_name'].astype('string')
df['artist_id_basket'] = df['artist_id_basket'].astype('string')
df['song_name'] = df['song_name'].astype('string')
df['song_gn_gnr_basket'] = df['song_gn_gnr_basket'].astype('string')
df['artist_name_basket'] = df['artist_name_basket'].astype('string')
df.to_sql("song_meta", conn)
for row in cur.execute('select * from song_meta limit 5'):
print(row)
정말,,,기쁘다,,,
SQL은 아름답다🥳