TypeError: JSON 개체는 'bytes'가 아닌 str이어야 합니다.
저는 다음과 같은 기본적인 코드를 가지고 있습니다.TypeError: the JSON object must be str, not 'bytes'
import requests
import json
url = 'my url'
user = 'my user'
pwd = 'my password'
response = requests.get(url, auth=(user, pwd))
if(myResponse.ok):
Data = json.loads(myResponse.content)
다음과 같이 데이터 변수에 디코딩을 설정하려고 하지만 동일한 오류가 발생합니다.jData = json.loads(myResponse.content).decode('utf-8')
좋은 의견이라도 있나?
json.loads(myResponse.content.decode('utf-8'))
그냥 잘못된 순서로 나열한 거야, 무고한 실수.
(심도 있는 답변).wim이 정중하게 지적한 바와 같이 드물게 UTF-16 또는 UTF-32를 선택할 수 있습니다.이러한 경우는 개발자로서는 그다지 흔하지 않습니다.이 시나리오에서는 귀중한 대역폭을 의도적으로 폐기하기로 결정하게 됩니다.따라서 부호화 문제가 발생했을 경우 utf-8을 16, 32 등으로 변경할 수 있습니다.
여기에는 몇 가지 해결책이 있습니다.요청의 빌트인을 사용할 수 있습니다..json()
기능:
myResponse.json()
또는, 다음의 방법으로 문자 검출을 선택할 수 있습니다.chardet
샤르데는 연구를 바탕으로 개발된 도서관이다.라이브러리에는 다음 한 가지 기능이 있습니다.detect
. Detect는 가장 일반적인 인코딩을 감지한 후 문자열 인코딩에 사용할 수 있습니다.
import chardet
json.loads(myResponse.content.decode(chardet.detect(myResponse.content)["encoding"]))
요청을 통해 암호를 해독할 수 있습니다.
data = response.json()
그러면 헤더(Content-Type)와 응답 인코딩이 확인되고 콘텐츠를 올바르게 디코딩하는 방법이 자동으로 검출됩니다.
python3.6+는 이 automatically.so을 실행합니까? 당신의 코드는 python3.6에서 오류를 반환하지 않아야 합니다.+
언급URL : https://stackoverflow.com/questions/42683478/typeerror-the-json-object-must-be-str-not-bytes
'programing' 카테고리의 다른 글
Redux로 대응하시겠습니까?'문맥' 문제는 어떻습니까? (0) | 2023.03.11 |
---|---|
반응 단방향 데이터 바인딩과 Angular의 양방향 데이터 바인딩의 차이를 설명할 수 있는 사람? (0) | 2023.03.11 |
허브 클래스 외부에서 SignalR 사용자 연결 ID를 가져오려면 어떻게 해야 합니까? (0) | 2023.03.11 |
경고: mysqli_real_connect(): (HY000/2002)1452행의 /private/tmp/wordpress/wp-includes/wp-db.php에 이러한 파일 또는 디렉토리가 없습니다. (0) | 2023.03.11 |
ReactJS에서 하위 구성요소에서 상위 구성요소로 데이터를 전달하는 방법은 무엇입니까? (0) | 2023.03.11 |