반응형

파이참(PyCharm)에 있는 pymysql 모듈을 통해 처음으로 MySQL을 사용하면 아래와 같이 에러가 발생할 수 있습니다.

저와 같이 에러가 나시는 분들은 아래 해결책을 통해 해결하시면 됩니다.

저의 경우는 에러메시지<1> 증상이 나타난후 곧바로 에러메시지<2> 증상이 나타났습니다.

 

 

  에러메시지<1>

RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods

 

  해결책<1>

- cryptography 모듈 설치

명령어 : python.exe -m pip install cryptography 또는 PyCharm > Setting > cryptography 모듈 설치

 

  에러메시지<2>

pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

 

  해결책 <2>

- root 계정 접속 후 root 패스워드 변경

명령어 : ALTER USER 'root'@'localhost' IDENTIFIED BY '<바꿀패스워드>';

 

 

위와 같이 두 가지 에러메시지를 해결하면 다음과 같이 정상적으로 실행이 가능합니다.

 

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

caul334@gmail.com

 

 

 

반응형
반응형

zipfile 모듈을 사용하면서 압축을 다 해제하고 zipfile을 삭제하려고 하는데 에러가 발생했습니다.

 

  에러메시지

1
PermissionError: [WinError 32] 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다.
cs

 

 

  해결책

.close()로 종료했어야 했는데 종료하지 않은 객체가 있는지 확인해 봅니다.

객체를 정상적으로 종료하면 아래와 같이 해결 가능합니다.

 

1. 삭제하려는 파일

 

2. 에러메시지

 

3. close() 추가

 

반응형
반응형

트렌드를 파악하기 위해 네이버에서 데이터랩에서 제공하는 API 중 하나인 쇼핑 인사이트 API를 사용해보았습니다.

막상 사용하려 소스코드를 확인해보니 requests 모듈이 아닌 urllib 모듈이여서 사용하기 난감했습니다.

제가 평소에 requests 모듈에 친숙해 있기 때문이였죠. (requests 모듈은 알아두면 두고두고 쓸데가 많습니다.)

그래서 추후에 또 사용할 수도 있어서 이번 기회를 통해 urllib에서 requests 모듈로 변경해서 사용해보자고 생각했습니다.

 

  원본 소스코드

#-*- coding: utf-8 -*-
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
url = "https://openapi.naver.com/v1/datalab/shopping/categories";
body = "{\"startDate\":\"2017-08-01\",\"endDate\":\"2017-09-30\",\"timeUnit\":\"month\",\"category\":[{\"name\":\"패션의류\",\"param\":[\"50000000\"]},{\"name\":\"화장품/미용\",\"param\":[\"50000002\"]}],\"device\":\"pc\",\"ages\":[\"20\",\"30\"],\"gender\":\"f\"}";

request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
request.add_header("Content-Type","application/json")
response = urllib.request.urlopen(request, data=body.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
    response_body = response.read()
    print(response_body.decode('utf-8'))
else:
    print("Error Code:" + rescode)

 

API에 대한 사용방법 등 상세한 설명은 아래 링크로 달아두었습니다.

쇼핑인사이트 API 사용법

 

쇼핑인사이트 - Datalab

쇼핑인사이트 쇼핑인사이트 개요 개요 쇼핑인사이트 API 개요 쇼핑인사이트 API는 네이버 데이터랩의 쇼핑인사이트를 API로 실행할 수 있게 하는 RESTful API입니다. 네이버 통합검색의 쇼핑 영역과

developers.naver.com

 

 

  수정된 소스코드 (requests 모듈)

import requests
import json
import pprint

####################################
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
####################################

url = "https://openapi.naver.com/v1/datalab/shopping/categories"

payload = {"startDate": "2017-08-01",
           "endDate": "2017-09-30",
           "timeUnit": "month",
           "category": [
               {"name": "패션의류",
                "param": ["50000000"]},
               {"name": "화장품/미용",
                "param": ["50000002"]}],
           "device": "pc",
           "ages": ["20", "30"],
           "gender": "f"}

headers = {"X-Naver-Client-Id": client_id, "X-Naver-Client-Secret": client_secret, "Content-Type": "application/json"}
res = requests.post(url, data=json.dumps(payload), headers=headers)

print(res.status_code)
aaa = json.loads(res.text)
pprint.pprint(aaa)

 

  소스코드 실행 결과 (requests 모듈)

위 소스를 실행하면 아래와 같은 가독성 있는 결과를 얻을 수 있습니다.

 

내용이 유용하셨나요? 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

caul334@gmail.com

반응형
반응형

Open Dart API를 기반으로 한 Open Dart Reader 라이브러리를 사용하기 위해 간단한 코드를 작성해 보았습니다.

실행해보니 아래와 같은 에러가 발생합니다.

 

  에러 내용

\OpenDartReader\dart_finstate.py:28: FutureWarning: pandas.io.json.json_normalize is deprecated, use pandas.json_normalize instead return json_normalize(jo, 'list')

 

이럴때 해결책은 아래 두줄의 코드를 추가만 해주면 됩니다.

 

  추가할 코드 부분

1
2
import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)
cs

 

아래 두줄을 추가하고 실행했을때의 결과는 아래 사진처럼 warning 없이 정상적으로 결과가 출력됩니다.

  실행화면

 

내용이 유용하셨나요? 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

 

반응형

+ Recent posts