🐕

【初心者向け/ITスクール 66日】Python JSONparsing/DB access

2023/10/20に公開

はじめに

今日は、ITスクールに通った66日目の日で、今日学んだ知識を記事にシェアしたいと思います。本記事が、ITを勉強を始めた方々にもロードマップになればいいと思います。

今日は、昨日の続きで、PythonでJSONをParsingする実習を行い、
Oracle DBとアクセスする実習を行いました。

JSON Parsing

Rest APIを使って、JSONのデーターをParsingしました。

# -*- coding:utf-8 -*-
from http.client import HTTPSConnection
from urllib.parse import quote
from json import loads

book_name = input("book name: ")
book_name = quote(book_name)

header = {"Authorization": "KakaoAK sssssssssssss"}

hc = HTTPSConnection("dapi.kakao.com")
url =f"/v3/search/book?query={book_name}"
hc.request("GET", url, headers=header)

resBody = hc.getresponse().read()

result = loads(resBody)

result["documents"]

for book in result["documents"]:
    print(book["title"]+"-" + book["authors"][0])
    print(book["price"])
    print(book["contents"])
    print()

DB Access

EclipseにData Sourceを追加した後、既存のjdbcと連携し、

cmdからpip install cx_oracleを入力します。
PythonとDBをconnectするlibraryです。

from cx_Oracle import connect

try:
    con = connect("rnjsgurah2/1234@localhost:1521/xe")
    print("성공")
except Exception as e:
    print(e)
        
con.close() 

CUD

# -*- coding:utf-8 -*-
from cx_Oracle import connect

con = connect("rnjsgurah2/1234@localhost:1521/xe")

n = input("coffee name: ")
p = int(input("coffee price : "))
b = input("coffee bean : ")

sql = "insert into oct20_coffee values(oct20_coffe_seq.nextval, "
sql += "'%s', %d, '%s')" %(n,p,b)

cur = con.cursor()

cur.execute(sql)


if cur.rowcount == 1: #(update,delete1以上になれるので>=1を記載)
    print("success")
    con.commit()
    

con.close()    

READ


# -*- coding:utf-8 -*-
from cx_Oracle import connect


con = connect("rnjsgurah2/1234@localhost:1521/xe")

start = int(input("start: "))
end = int(input("end : "))

sql = "select avg(c_price) "
sql +="    from (select rownum as rn, c_price "
sql +="        from(select c_price "
sql +="            from oct20_coffee order by c_price)) "
sql +=f"where rn between {start} and {end}"

cur = con.cursor()
cur.execute(sql)

for a in cur:
    print(a)
    print(a[0])
con.close()

Discussion