본문 바로가기

app/python

(50)
hanspell 오류 JSONDecodeError: Expecting value; line1 column 1(char0) (23-04-07 업데이트) 네이버 맞춤법 검사기를 해당 패키지가 사용중이지만, 계속 바뀌고 있는 중인거 같다. https://github.com/ssut/py-hanspell/issues/31#issuecomment-1499111284 JSONDecodeError: Expecting value; line1 column 1(char0) 오류 · Issue #31 · ssut/py-hanspell 안녕하세요. 기존에 hanspell을 사용하여 프로젝트를 하고 있는 컴퓨터공학과 학생입니다. 다름이 아니라, 며칠 전까지만 해도 오류 없이 잘 실행되던 코드가 제목과 같이 오류가 생성되어 이렇게 github.com 여기 이슈를 확인하고 수정하길 바랍니다. 아래 글은 참조하지 마세요!!!!!!!!!!!!!!! ==..
input vs sys.stdin.readline 결론 : input()이 syscall에 의해 실행될 때마다 TTY인지 확인하고 sys.stdin.readline()보다 훨씬 느리게 작동 대략 속도 30배 정도 차이남!!! 빌트인 함수 input과 sys.stdin.readline함수는 정확히 같은 일을 하지 않는다. 어떤 것이 더 빠른지는 수행 중인 작업의 세부 사항에 따라 달라질 수 있다. 첫 번째 차이점은 input인터프리터가 대화식으로 실행 중인 경우 표시되는 선택적 프롬프트 매개변수가 있다는 것. 이로 인해 프롬프트가 비어 있더라도(default는 비어있음) 약간의 오버헤드가 발생한다. 두번째 차이점은 input은 개행을 제거한다. 마지막 차이는 입력의 끝이 표시되는 방식이다. input은 호출할 때 입력이 더이상 없다면 EOF 오류를 발생시..
'utf-8' codec can't decode byte 0xff in position 0: invalid start byte 해당 사항은 이미지에 대한 건 입니다. 일반적인 텍스트일 경우 다르게 동작 할 수 있습니다. 크롤링 중 리턴 값이 바이트형식으로 되어 있다. 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte 다른 인코드 형태인가 해서 euc-kr / cp949 / utf-16도 해봤지만 모두 에러가 발생했다. 사실 에러가 발생하는 요청은 이미지로 정상적인 이미지인 부분은 변환이 불가능 하여 에러가 발생하였고, 이미지가 아닐경우에 을 리턴하는 형태의 api 였다 (이 무슨…괴랄한..) req.content.decode('utf-8', 'ignore') 를 한다면 이미지의 경우 깨진 string으로 변환되고 html일 경우엔 정상적으로 string..
pypy Python의 언어 구현 중 하나로, C로 짜인 기존의 CPython과 달리 Python으로 Python을 만드는 프로젝트이다. 이 프로젝트의 진짜 놀라운 점은 기존 CPython보다 전혀 느리지 않을뿐더러, 오히려 성능면에서 CPython을 능가하고 있다는 점이다. 1. 설치 $ apt install pypy 2. 사용 주피터에서는 그냥 상단에 %%pypy만 쓰면 된다. Just-In-Time (JIT) Compiler 이기 때문에 해당 단락만 pypy로 실행되기 때문이다. (다른 단락은 기존의 python이 실행된다) 그래서 각 단락마다 "import time"을 두번 했다 성능은? 9 배 차이.... 일반 커맨드에서 실행한다면 pypy로 실행하면 된다. $pypy ./test.py 499999999..
cython : python to C Cython 은 CPython 확장 모듈을 생성하고 이를 이용하여 외부 함수 인터페이스와 실행 속도 향상과 외부 라이브러리의 연동을 보다 향상 시킬 수 있도록 고안된 컴파일 언어이다 Cython 은 pyx 확장명을 사용하고, 컴파일 과정을 통하여 파이썬에서 import 형태로 사용될 수 있다. 컴파일은 다음 setup.py 를 이용하여 컴파일할 수 있다 1. cython 설치!! $ pip install cython 2. 변환할 파이썬 코드를 pyx 확장자로 생성 1 2 3 4 # test_cython.pyx def ret_list(n): return [i for i in range(n)] cs 3. setup.py 파일 생성 1 2 3 4 5 # setup.py # -*- coding: utf-8 -*..
ERROR: Cannot install -r /requirements.txt because these package versions have conflicting dependencies. pip로 패키지 설치시 같은 패키지에서 서로 다른 버전을 "==" 로 명시 했을때 pip 매니져는 무엇을 설치 할지 몰라서 conflict 에러를 뱉고 멈추게 된다. 고치는 방법으로 1. 특정 버전을 명시하지 말고 러프하게 하거나 (">="나 아예 버전을 명시하지 않는다. ) 2. 디팬던시된 패키지를 한쪽에서 삭제하라고 권고 한다. 만일 위의 방법을 할수 없는 상황이였다. 나의 경우 설치를 해야 하는 서로 다른 두개의 사내 패키지가 이미 버전이 고정되어 있어서 수정이 불가능한 상태. 이럴때는 같은 패키지를 재설치하려 할때 무조건 상위 버전으로 설치하라고 명시해주면된다. --upgrade --no-deps --force-reinstall pip install --upgrade --no-deps --forc..
parquet 데이터를 쉽게 접근할 수 있도록 csv로 저장해서 사용한다. 하지만 csv는 메타데이터를 저장할 수 없어 칼럼 별로 dtype을 다시 지정해줘야 하는 일이 생기며, 읽고 쓸 때 시간이 많이 걸린다는 단점이 있다. 이를 보완하기 위해 pickel, parquet, hdf5 와 같은 다양한 데이터 포맷을 사용하는데 그중 parquet에 대해서 알아본다 what is parquet? Apache Parquet는 데이터 처리 프레임워크, 데이터 모델 또는 프로그래밍 언어에 관계없이 Hadoop 생태계의 모든 프로젝트에서 사용할 수 있는 칼럼형 스토리지 형식 Columnar parquet의 저장 방식은 컬럼 지향으로 저장한다. 칼럼 단위의 값은 데이터가 유사할 가능성이 높다. 이로 인해 높은 압축률을 얻을 수 있..
pickle 1. pickle? 직렬화 : 개체를 메모리, DB, 파일에 저장하기 위해 개체를 바이트 스트림으로 변환하는 프로세스 언어마다 직렬화를 표현하는 단어가 다르다. java : 직렬화 python : 피클링 perl.. etc : 마샬링 사실 마샬링이 가장 큰 개념이다. 직렬화하는 모든 과정을 뜻하는 말이다. 2. 난 json 잘 쓰고 있는데? pickle vs json pickle과 JSON (JavaScript Object Notation) 에는 근본적인 차이가 있다. JSON은 텍스트 직렬화 형식(유니코드 텍스트를 출력하지만, 대개는 utf-8으로 인코딩)인 반면, pickle은 바이너리 직렬화 형식 JSON은 사람이 읽을 수 있지만, pickle은 그렇지 않다 JSON은 상호 운용이 가능하며 파이썬 ..