2016-08-08 4 views
1

this topic과 매우 유사한 작업을하고 있습니다. JSON 파일처럼 보이는 파일을 다운로드했습니다. 그러나 메모장에서 열면 사전 목록이 매우 길다는 것을 알았습니다. 이 파일은 기본적으로 다음과 같습니다파이썬에서 'JSON 문자열'파일을 구문 분석하는 방법은 무엇입니까?

[ 
{'time':1, 'value':100}, 
{'time':2, 'value':105}, 
{'time':3, 'value':120} 
] 

이 같은 파이썬으로이 'JSON 파일을'로드하려고 :

import json 
with open('data.json') as data_file: 
    data = json.loads(data_file) 

을하지만 오류가있어 :

TypeError: expected string or buffer 

어떻게 수를 이 파일을 파이썬에 올바르게로드 하시겠습니까? 모든 '값'을 추출하기 위해 각 행을 반복하고 싶습니다. 감사!

+1

'json.loads'를 사용하려면 파일을 읽어야합니다. 즉,'data = json.loads (data_file.read()) ' – danidee

+0

이렇게하면' json.load()', 아래 @Rushy가 제안한대로. 이 파일은 완전히 85473 개의 행을 가지며 첫 번째 행은'['이고 마지막 행은']'이다. 전후 따옴표 없음. 본질적으로 목록 개체라고 생각합니다. – user3768495

답변

2

사용 json.load :

with open('data.json') as data_file: 
    data = json.load(data_file) 

json.loadjson.loads의 주요 차이점은 json.load이 문자열에서 json.loads로드 JSON 반면,에서 파일 (또는 파일 - 류의 객체) 읽기 및 부하 JSON을 허용한다는 것입니다.

+0

고마워요 @ 루시. 나는'json.load()'를 사용했지만 여전히 오류가 있습니다 : ValueError : Extra data : 371 행 2 행 85473 2 행 (char 196700 - 43922174)'. 줄 85473이 마지막 줄입니다. 이 파일의 첫번째 행은'[', 마지막 행은']'입니다. 전후에는 따옴표가 없습니다. – user3768495

+0

@ user3768495 JSON 파일이 유효한 JSON이 아닌 것 같습니다. ']'뒤에 어떤 것이 있습니까? –

+0

아니요, 아무 것도 없습니다. 파일은 위의 질문에서 보여준 예제와 같으며 더 많은 행이 있습니다. – user3768495

관련 문제