지금은 저번 게시글에서도 이야기했던 메모장에 json 형식으로 입력후 route를 사용하여 파일을 읽고 json으로 추출해볼 예정이다. 기기링!!!!!
vscode에서 파일을 써서 읽어보기도 할 예정!
난 D드라이브에 test라고 이름을 지어준 간단쓰한 내용을 입력해보았다
from flask import Flask, request, make_response, jsonify
import json
app = Flask(__name__)
# 아래 플라스크 앱 설정 변경 추가하자 한글 인코딩됨
app.config['JSON_AS_ASCII'] = False
@app.route('/json_test', methods=['GET'])
def json_test():
json_file = "D:\\test.txt"
with open(json_file, 'r', encoding="utf-8") as f:
json_data = json.load(f)
return make_response(jsonify(json_data), 200)
if __name__ == '__main__':
app.run(host="0.0.0.0", port="5000")
여기서는 한글이 아주 잘 나오지만 그건 위 예제 소스에서 내가 app.config['JSON_AS_ASCII'] = False
를 추가해 주었기 때문이다. 한글 인코딩을 하기 위해서 여러 작업을 계속 찾아가며 반복하다 해결할 수 있었다!!
prisma = {
"name": "jbu",
"lv": 24,
"Favorite": ["음식", "노는거", "영화", "노래"],
"movies": ["범죄도시2", "닥터스트레인지2"]
}
with open('D:\\json_W_test.txt', 'w', encoding="utf-8") as f:
json.dump(prisma, f, ensure_ascii = False, indent=4)
이제 d드라이브로 이동하여 해당 이름의 내용을 가진 메모장이 생겼는지 확인해볼까?
차란~ 아주 잘 들어갔다!! ensure_ascii = False, indent=4
추가하여 내용이 아주 깔쌈하게 저장되었다!
# 위에서 쓴 내용 읽고 출력하기
with open('D:\\json_W_test.txt', 'r', encoding="utf-8") as f:
json_data = json.load(f)
print( json.dumps(json_data, ensure_ascii = False, indent=4) )
여기도 아주 깔끔하게 성공!
# 위에서 쓰고, 읽은 내용 route사용하여 브라우저에서 확인해보기
@app.route('/json_W_test', methods=['GET'])
def json_W_test2():
json_filelist = "D:\\json_W_test.txt"
with open(json_filelist, 'r', encoding="utf-8") as f:
json_data = json.load(f)
return make_response(jsonify(json_data), 200)
여기도 마찬가지로 잘 뜬다!!! 아주 다행~~~