반응형
[2021.08.05] How to insert json data imported from postman into AWS-MySQL through request using python?
해당 게시글은, 아래의 링크와 다르게 postman에서 request한 url에서 바로 json data를 mysql에 넣는 방법이다.
즉, 아래의 링크에선 json data를 수작업으로 받아줬지만, 해당 게시글에서는 그런 과정이 없어진 것이다.
코드에서 날짜만 바꿔주면 원하는 해당 데이터가 들어간다.
https://injekim97.tistory.com/372
-> json 데이터를 수작업으로 받아서, mysql에 넣어주는 방법이다.
postman에서 request한 url에서 json data를 mysql에 넣는 코드
import pymysql
import requests
import json
# Azure or AWS DB 연동
def get_db():
db = pymysql.connect(
host='mysql.monorama.kr',
port=3306,
user='admin',
passwd='1/zw;GytAwx*',
db='AIR',
charset='utf8'
)
return db
# json data insert
def insert_json_data():
db = get_db()
mycursor = db.cursor()
# -------------------postman query data -----------------------------
url = "https://us-central1-mytypescript-62c14.cloudfunctions.net/getData"
payload = json.dumps({
"fromDate": "20210801180000",
"toDate": "20210801190000",
"siteCode": "unv_0001",
"key": "Qkslffk@91",
"serialNum": "24:0A:C4:22:37:72",
"format": "json",
"segment": "avg"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
# 여기서 부터 추가함
# response를 json으로 새로운 변수에 저장한 후,
data = response.json()
print(data)
for i in data:
# print(i["serialNum"]) # 이것은 json 데이터에서 반복해서 돌려서, 컬럼 값을 추출한다는 뜻
# print(i["co2"])
# print(i["humid"])
# print(i["pm10"])
# print(i["pm5"])
# print(i["temp"])
# print(i["vocs"])
# print(i["timeZone"])
# print(i["reportTime"])
# print(i["lat"])
# print(i["long"])
mycursor.execute("insert into 0804_AIR_JSON(SerialNum,Co2,Humid,Pm10,Pm5,Temp,Vocs,timeZone,ReportTime,Lat,Lng) values (%s ,%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",(i["serialNum"],i["co2"],i["humid"],i["pm10"],i["pm5"],i["temp"],i["vocs"],i["timeZone"],i["reportTime"],i["lat"],i["long"]))
db.commit()
db.close()
print("=======성공적으로 json data 삽입을 완료하였습니다.=====")
#-------------------------------main----------------------------
insert_json_data()
앞의 코드는 포스트맨에서 가져온 코드이며 ,
이것은 내가 추가해준 코드이다.
# response를 json으로 새로운 변수에 저장한 후,
data = response.json()
print(data)
for i in data:
# print(i["serialNum"]) # 이것은 json 데이터에서 반복해서 돌려서, 컬럼 값을 추출한다는 뜻
# print(i["co2"])
# print(i["humid"])
# print(i["pm10"])
# print(i["pm5"])
# print(i["temp"])
# print(i["vocs"])
# print(i["timeZone"])
# print(i["reportTime"])
# print(i["lat"])
# print(i["long"])
mycursor.execute("insert into 0804_AIR_JSON(SerialNum,Co2,Humid,Pm10,Pm5,Temp,Vocs,timeZone,ReportTime,Lat,Lng) values (%s ,%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",(i["serialNum"],i["co2"],i["humid"],i["pm10"],i["pm5"],i["temp"],i["vocs"],i["timeZone"],i["reportTime"],i["lat"],i["long"]))
<출력 결과>
-> mysql에서도 정상적으로 들어간 것을 확인할 수 있다.
반응형
댓글