반응형
이 질문에 대한 기존 답변을 확인했지만 내 특정 문제가 무엇인지 찾을 수 없습니다. 내가 생각하는 것을 유효한 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
반응형
'파이썬' 카테고리의 다른 글
파이썬 Flask-restful-위의 예외를 처리하는 동안 다른 예외가 발생했습니다. (0) | 2020.09.13 |
---|---|
파이썬 Python Flask 앱의 settings.py에서 os.getenv ()를 사용하는 이유는 무엇입니까? (0) | 2020.09.13 |
파이썬 Django는 미디어 폴더 안에 다른 미디어 폴더를 만듭니다. (0) | 2020.09.13 |
파이썬에서 평균과 분산 계산 (0) | 2020.09.13 |
파이썬 지속적으로 웹 스크래핑하는 Flask 앱 배포 옵션 (0) | 2020.09.12 |
댓글