Python의 json.loads를 사용할 때 'ValueError: Extra Data'가 나타나는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-16 09:07:02
원래의
721명이 탐색했습니다.

Why Am I Getting

Python의 json.loads를 사용할 때 "ValueError: Extra data"

Python의 json.loads 함수를 사용하여 JSON 파일을 구문 분석할 때 , 다음 오류가 발생할 수 있습니다.

ValueError: Extra data: line 88 column 2 - line 50607 column 2 (char 3077 - 1868399)
로그인 후 복사

이 오류는 다음에 추가 데이터가 있음을 나타냅니다. 유효한 JSON 구조의 일부가 아닌 JSON 파일.

원인

이 오류는 일반적으로 JSON 파일에 한 줄에 둘 이상의 JSON 개체가 포함되어 있을 때 발생합니다. json.loads는 단일 JSON 개체를 입력으로 예상하지만 첫 번째 개체 뒤에 추가 콘텐츠가 있는 경우 "추가 데이터" 오류가 발생합니다.

샘플 JSON

예를 들어 다음 샘플 JSON 파일을 생각해 보세요.

{"id": 123, "name": "John"}
{
    "id": 456,
    "name": "Jane"
}
로그인 후 복사

이 파일에는 두 개의 JSON 개체가 포함되어 있지만 각 개체는 별도의 줄. json.loads가 첫 번째 객체를 발견하면 이를 구문 분석하고 두 번째 객체에 도달하면 오류를 발생시킵니다.

해결책

이 오류에 대한 해결책 각 JSON 개체가 파일의 자체 줄에 있는지 확인하는 것입니다. 파일을 수동으로 편집하거나 도구를 사용하여 JSON을 다시 포맷하면 됩니다.

반복적 구문 분석

JSON 파일이 크고 많은 JSON 개체가 포함된 경우 , 전체 파일을 메모리에 로드하지 않고 파일을 구문 분석하는 반복 접근 방식을 사용할 수도 있습니다.

import json

tweets = []
with open('tweets.json', 'r') as file:
    for line in file:
        tweets.append(json.loads(line))
로그인 후 복사

이 접근 방식에서는 파일은 한 줄씩 반복되며 각 줄은 JSON 개체로 구문 분석됩니다. 이렇게 하면 중간 Python 객체를 저장하지 않아도 되며 대용량 파일의 경우 더 효율적입니다.

위 내용은 Python의 json.loads를 사용할 때 'ValueError: Extra Data'가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿