Python-flask2 json

장보운·2022년 5월 20일
0

기억하기 위한 나만의 기록장!!

지금은 저번 게시글에서도 이야기했던 메모장에 json 형식으로 입력후 route를 사용하여 파일을 읽고 json으로 추출해볼 예정이다. 기기링!!!!!
vscode에서 파일을 써서 읽어보기도 할 예정!

json형식의 메모장 준비하기 🙂

난 D드라이브에 test라고 이름을 지어준 간단쓰한 내용을 입력해보았다

python-route사용하여 파일 읽기 👀

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 를 추가해 주었기 때문이다. 한글 인코딩을 하기 위해서 여러 작업을 계속 찾아가며 반복하다 해결할 수 있었다!!

+ VSCode에서 직접 파일 쓰고 읽어보기 😤

  1. 먼저 변수에 json형식으로 데이터를 담고 써볼 예정이다!
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 추가하여 내용이 아주 깔쌈하게 저장되었다!

  1. 위에서 쓴 내용을 log로 출력하여 살펴도 봐보자!
# 위에서 쓴 내용 읽고 출력하기       
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) )


여기도 아주 깔끔하게 성공!

  1. 마지막으로 저번에도 했던 방법처럼 route를 사용하여 브라우저에서도 확인해보자!
# 위에서 쓰고, 읽은 내용 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)


여기도 마찬가지로 잘 뜬다!!! 아주 다행~~~

profile
호기심이 많은 개발자

0개의 댓글