본문 바로가기
Django/Django개념

0x00 에러해결(A string literal cannot contain NUL (0x00) characters)

by hyun-am 2022. 12. 19.

발생한 문제

데이터를 bulk_create or bulk_update해야하는데 데이터 사이에 0x00이 들어간 데이터 때문에 저장할때마다 에러가 발생했습니다.

 

에러 이름

  • A string literal cannot contain NUL (0x00) characters.

 

해당 데이터가 어떤식으로 들어오는지 로그를 조회하니 다음과 같은 데이터가 들어온 것을 확인할 수 있습니다.

  • "달리는커피 시그니처\x00파스타, 두부가라아게 추가"

이렇게 \x00데이터 때문에 다음과 같은 에러가 나왔습니다..

처음에는 그냥 string에서 제공하는 replace()로 해결하려고 replace(’\x00’, ‘’)로 처리했는데 변경한것 없이 그대로 "달리는커피 시그니처\x00파스타, 두부가라아게 추가" 이렇게 들어왔습니다.

 

그래서 어떻게 처리할까 고민하다가 string data를 encode() → decode() 처리해서 다시 replace하는 과정으로 처리했습니다.

 

code ex)

req_body = request.data

memo_data = req_body.encode().decode().replace("\x00", "")

이런식으로 처리하니 data가 잘 들어왔습니다

 

참고한 링크

'Django > Django개념' 카테고리의 다른 글

Django replica 적용기(RDS + Postgresql)  (0) 2023.01.08
admin action custom 하기  (0) 2023.01.03
Django multiple DB 문서정리  (0) 2022.12.19
django transaction(장고 트랜잭션)  (0) 2022.08.25
마케터를 위한 CMS만들기  (0) 2021.12.31

댓글