본문 바로가기
파이썬

파이썬 Python-JSONDecodeError : 큰 따옴표로 묶인 속성 이름이 필요합니다.

by º기록 2020. 9. 13.
반응형

이 질문에 대한 기존 답변을 확인했지만 내 특정 문제가 무엇인지 찾을 수 없습니다. 내가 생각하는 것을 유효한 JSON 객체로 구문 분석하려고하는데 어떻게 든 거부하고 있습니다. 이 코드를 사용하여 API 응답에서 데이터를 파일로 덤프했습니다.

def write_video_ids_to_file(video_ids, video_data_file):
    # create file if it doesn't exist
    file_is_empty = is_file_empty(video_data_file)
    if file_is_empty:
        open(video_data_file, 'w').close()

    with open(video_data_file, 'a') as file:
        json.dump(video_ids, file, indent=4, sort_keys=True, default=str)
        print('collecting video ids')

그리고 파일에서 JSON을 다시로드하려고 시도하는 아래 코드는 실패한 것 같습니다.

def construct_video_id_array(video_data_file):
    with open(video_data_file, 'r') as file:
        json_data = json.load(file) # <-- failing here

    video_ids_separate = []
    for video in json_data:
        video_ids_separate.append(video['video_id'])

    return video_ids_separate

다음은 내 JSON 데이터의 샘플입니다 (8MB 정도이므로 모두 게시하지 않겠습니다).

{[
    {
        "channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
        "collection_date": "2020-08-18 20:55:18.854967",
        "publish_date": 1597784402.0,
        "video_id": "5tBnaxQKpHQ"
    },
    {
        "channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
        "collection_date": "2020-08-18 20:55:18.854967",
        "publish_date": 1597698002.0,
        "video_id": "7J3H8ckUaYU"
    }
]}

원래 처음과 끝에 {가 없었기 때문에 추가했습니다. 그것이 올바른 움직임인지 확실하지 않지만, 그것의 유무에 관계없이 가치가있는 것은 다른 오류를 던집니다.

 

해결 방법

 

당신의 json은

{ "your_data":[
    {
        "channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
        "collection_date": "2020-08-18 20:55:18.854967",
        "publish_date": 1597784402.0,
        "video_id": "5tBnaxQKpHQ"
    },
    {
        "channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
        "collection_date": "2020-08-18 20:55:18.854967",
        "publish_date": 1597698002.0,
        "video_id": "7J3H8ckUaYU"
    }
]}


{ "your_data":[
    {
        "channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
        "collection_date": "2020-08-18 20:55:18.854967",
        "publish_date": 1597784402.0,
        "video_id": "5tBnaxQKpHQ"
    },
    {
        "channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
        "collection_date": "2020-08-18 20:55:18.854967",
        "publish_date": 1597698002.0,
        "video_id": "7J3H8ckUaYU"
    }
]}

따라서 json.dump는 파일에 적절한 json을 덤프합니다.

 

참조 페이지 https://stackoverflow.com/questions/63758178

 

 

반응형

댓글