반응형 파이썬13 터미널에서 JSON 데이터 예쁘게 보기 인코딩 방식에 따라 다르긴 하지만 대체로 파일로 저장된 JSON 데이터는 개행이나 들여쓰기가 다 사라져서 눈으로 읽기 난감한 경우가 많다. 이럴 때는 어느 정도 자동으로 포매팅해서 읽는 방법을 쓸 수 있다. 이 글에서는 대충 두 가지 방법을 정리해 본다. 파이썬의 json.tool 활용Python 2.6 이상에서 사용 가능한 방법으로 json.tool이라는 모듈을 이용하면 JSON 데이터를 재정렬해서 읽기 편하게 변경할 수 있다. 예를 들자면 아래와 같은 방식으로 쓸 수 있다.echo '{"name": "Conrad", "age": 999}' | python -m json.tool위 예제를 실제로 셸에서 실행시켜 보면 아래와 같이 출력된다.$ echo '{"name": "Conrad", "age": 9.. 2024. 10. 3. uv - Python의 대안 패키지 및 프로젝트 관리자 어쩌다가 파이썬에 uv라는 또 다른 패키지 매니저가 있는 것을 알게 되었다. 새롭다고 하기엔 나온 지 좀 된 것 같지만 그래도 새롭게 알게 되었으니 이 uv에 관해서 간단히 정리해 보자.uv - An extremely fast Python package and project manager, written in Rustuv는 대놓고 속도를 가장 중요시하는 패키지 및 프로젝트 매니저임을 강조하고 있다. 심지어 Rust로 쓰여서 상대적으로 Python에 비해 가볍고 빠를 수밖에 없어 보인다. 물론 Python용 도구가 Python으로 쓰이지 않은 것에 의아함이 있을 수도 있겠지만 아무렴 어떨까.설치 방법은 다채롭다. 공식 저장소에서 소개한 내용과 개인적으로 시험해 본 내용을 정리하면 이렇다.# macOS 및 .. 2024. 9. 3. Doom Emacs에서 Python 개발 환경 설정하기 Doom Emacs는 상당히 설정이 잘 되어 있는 설정 팩이지만 여기에 Python 모듈만 집어넣는다고 파이썬 개발 환경이 원하는 대로 완벽하게 잡히지는 않습니다. 이 글은 Doom Emacs에서 Python 개발 환경을 설정하기 위한 주관적인 기초 설정을 하는 법을 정리합니다.참고로 이 글을 쓰는 사람은 macOS가 돌아가는 맥을 사용 중입니다. 따라서 윈도 환경에서는 좀 차이가 날 수 있습니다.init.elDoom Emacs 설정의 가장 기본은 바로 이 init.el에서 시작되지요. SPC f p 키를 눌러서 init.el 파일을 쉽게 열 수 있습니다. 이 파일에는 각 모듈을 카테고리별로 정리해놓고 주석만 풀어주면 바로 사용할 수 있게 준비되어 있습니다.개인적으로는 syntax 모듈과 python 모.. 2020. 10. 21. Python Exceptions 간략 정리 이 글은 파이썬(Python)의 예외 처리(Exception Handling)를 간단히 정리합니다. 개인적인 용도로 메모했던 내용을 글로 작성하는 거라 원하시는 내용이 없을 수도 있다는 점 양해 부탁드립니다. 문법은 3.x 기준이며 2.x에서는 약간의 수정이 필요할 수 있습니다만 웬만하면 3.x 쓰세요.예외(Exceptions)가 뭐냐고요? 뭐 그냥 에러 혹은 오류라고 치죠. 성공이 아닌 나머지 모든 명확한 경우를 예외사항으로 취급할 수 있습니다.예외 처리하기파이썬의 예외 처리 방식은 try 블록 내에서만 가능합니다. 여기 안에 예외가 발생할지도 모를 코드를 실행시키고 여기서 예외가 발생하면 여기에 연결된 except 블록에서 해당 예외를 처리할 수 있습니다.try: do_what()except: .. 2020. 10. 9. Python 3.9 변경사항 간단 정리 파이썬(Python) 3.9 버전이 공식 릴리즈 되었기에 이에 관해 간단히 살펴보는 글입니다. 다만 이 글은 문법적으로 변경되는 사항만 정리합니다. 파서가 바뀌는 등의 변화는 저 같은 사람에겐 체감이 잘 안 되기도 하니깐요.사전형 합치기 및 수정 연산자 추가사전형(dict)끼리 합치기를 지원하는 | 오퍼레이터가 추가되었습니다.>>> {'a': 1, 'b': 2} | {'c': 3, 'd': 4}{'a': 1, 'b': 2, 'c': 3, 'd': 4}합쳐질 때 중복되는 키는 업데이트 되는 형태 같습니다. 따라서 아래와 같이 |= 오퍼레이터를 이용해 사전형의 값을 업데이트 할 수도 있습니다.>>> d = {'a': 111, 'b': 2}>>> d |= {'a': 1, 'c': 3}>>> d{'a': 1, .. 2020. 10. 6. Python 3 정적 타이핑 소개 및 소감(?) 파이썬은 동적 타이핑 언어입니다. 쉽게 말해서, 하나의 변수가 타입에 구애받지 않는 데이터를 가리킬 수 있습니다. 그래서 동적 타이핑은 쉽고 간결한 코드를 만들 수 있기도 합니다. 하지만 이런 장점과 함께 단점도 존재합니다.a = 100a = "String"동적 타이핑은 이렇게 단순한 코드를 만들 수 있지만, 변수에 전달되는 값이 과연 원하는 것으로 전달되는 지를 감시할 수 없다는 큰 단점이 있습니다. 예를 들어 특정 함수를 호출할 때 특정 매개변수(parameter)에는 정수가 전달되고 어떤 매개변수에는 문자열이 전달되어야 하는데 이것이 잘못되었다고 할지라도 실제로 실행시키기 전까진 문제가 있는지 없는지 인터프리터가 파악해 주지 않습니다.def make_double_prev(v): return (.. 2020. 2. 13. Python에 F-string 이라는 게 있었다? 현대적인 언어에서는 대체로 String Interpolation이라 불리우는 기능들이 있습니다. 이 기능은 문자열 내에 특정 문자열을 집어넣거나 치환시키기 위한 특수한 문법이자 기능입니다. 만약 이런 기능이 없다면 문자열 조합에 상당한 난관(?)이 있겠지요. 이번 글은 이런 기능이 파이썬에도 있다는 것을 알게 되어서 공부 겸 작성해 본 글입니다.기존의 파이썬의 이런 비슷한 기능으로 % 사인을 이용한 printf식 포매팅이나 format()을 활용한 치환법이 있었습니다.fs = '%d + %d = %d' % (1, 2, 3)fmts = '{} + {} = {}'.format(1, 2, 3)하지만 이 방법의 문제는 명확했죠. 치환될 위치와 실제로 입력될 값을 다른 위치에 입력하다 보니 결국 눈으로 하나하나 .. 2020. 2. 11. 파이썬 코드 문법 검사기 flake8 flake8은 파이썬(Python) 코드를 점검해주는 도구이자 파이썬 패키지입니다. 이 도구는 일부 오류가 있을 법한 코드나 불필요한 모듈 임포트(import), 이상한 띄어쓰기나 잘못된 들여쓰기 등등 여러 문제점을 알려줍니다. 약간 딱딱하게 표현해서 PEP8 코딩 컨벤션에 맞지 않는 것들을 알려줍니다. 이런 기능을 하는 도구를 린트(Lint)라고 표현하기도 하지요. 비슷한 도구로 pyflake도 있습니다.설치법파이썬 패키지이기 때문에 pip로 그냥 설치하면 됩니다.pip install flake8시스템에 따라 sudo를 줘서 루트 권한으로만 설치가 가능할 수도 있습니다.사용법flake8은 기본적으로 셸 CLI 유틸리티이기 때문에 커맨드 라인에서 간단히 실행시킬 수 있습니다. 그리고 실행 시 옵션으로 오.. 2020. 1. 29. 파이썬의 새로운 의존성 관리자 Poetry Poetry는 파이썬(Python)용 패키징 겸 의존성 관리를 도와주는 도구입니다. pip와 virtualenv를 합쳐놓은 듯한 pyenv와 비슷하게 생각되는 도구네요. 최근에는 1.0으로 버전이 올라가면서 이제 쓸만해진 것 아닌가 하는 생각이 듭니다.공식 홈페이지: https://python-poetry.org굳이 pip나 virtualenv와 다른 점이 뭐가 있냐면 좀 더 통일화된 관리 방식을 제공해 준다는 점이 차이가 있으려나요?실제로 poetry는 완전히 새로운 것이 아니라 기존에 제공되던 pip나 pipx, virtualenv 등을 그대로 사용하는 관리 방식을 제공합니다. 대신 npm이나 Cocoapods처럼 하나의 스펙 파일로 패키지 및 프로젝트 엔트리 포인트 등을 관리할 수 있게 해 준다는 .. 2020. 1. 7. 흥미로운 링크들 12월 5주차 ~ 1월 1주차 연말연시가 껴있다 보니 다들 바쁘신가 봅니다 😅 적지만 흥미 있었던 사이트 링크를 정리해 봅니다.https://www.cockroachlabs.com/blog/go-file-size/ Why are my Go executable files so large? | Cockroach LabsThis blog post was originally published on the author's personal blog. Overview I built some tooling to extract details about the contents of a Go executable fiwww.cockroachlabs.com왜 Go로 빌드한 실행파일은 크기가 클까요? 뭐 예상은 되겠지만 당연히 뭔가를 많이 집어넣기 때문이겠.. 2020. 1. 2. 흥미로운 링크들 12월 3주차 이번 주엔 그다지 재미있는 소식이 없었네요. 그래서 땜빵(?)을 몇 개 넣었습니다.https://csslayout.io CSS LayoutStarting with the most basic part, you can customize easily for each specific need. By composing them, you can have any possible layout that exists in the real life.csslayout.io레이아웃 CSS 코드의 66가지 예제를 볼 수 있습니다. 사이트나 페이지의 전반적인 레이아웃을 잡을 때 참고하면 좋을 것 같습니다.https://github.com/docker-slim/docker-slim docker-slim/docker-slimDocke.. 2019. 12. 23. 흥미로운 링크들 12월 2주차 쓸 게 없을 때마다 채워보는 링크 모음집!https://neal.fun/deep-sea/ The Deep SeaScroll down the deep sea in this interactive page.neal.fun아래로 스크롤하면 그 깊이의 바다에서 어떤 생물이 살고 있는지를 보여주는 사이트입니다. 얼핏 보면 별거 아닐 수도 있는데, 옛날 같았으면 이런 압박적인 세로 양의 페이지를 어떻게 만들고 어떻게 스크롤이 부드럽게 되는 등 별 생각이 많았을지도 몰랐겠네요. 뭐 하여간 재미있는 사이트 같습니다.https://www.swiftbysundell.com/articles/predicates-in-swift/ Predicates in Swift | Swift by SundellPredicates can en.. 2019. 12. 16. python2가 없는(?) 내 컴퓨터 회사 프로젝트 때문에 npm으로 hiredis를 설치하는 도중 아래와 같은 에러를 만났다.> hiredis@0.5.0 install /foo/bar/develop/project/node_modules/hiredis> node-gyp rebuildgyp ERR! configure error gyp ERR! stack Error: Command failed: /foo/bar/.pyenv/shims/python2 -c import sys; print "%s.%s.%s" % sys.version_info[:3];gyp ERR! stack pyenv: python2: command not foundgyp ERR! stack gyp ERR! stack The `python2' command exists in the.. 2019. 7. 12. 이전 1 다음 728x90 반응형