2016-09-16 9 views
1

나는 이것을 수행하는 방법을 찾고 있었지만 그렇게 할 수는 없습니다. .json 파일의 디렉터리가 있고 각 파일을 구문 분석해야합니다. glob와 os를 사용해야한다는 것을 알고 있습니다. 나는 그 뒤에있는 논리가 디렉토리 위의 루프 인 것처럼 느껴지고 각 파일을 읽을 때 필요한 데이터를 추출 할 때 도움이되지만 찾을 수없고 구문을 알지도 못한다. 스택 규칙과 사람들이 이것이 내가 다른 곳에서 검색 할 수있는 괜찮은 숙제에 대한 답변을 요구하는 것이라고 생각한다면, 이는 숙제가 아니라 단지 이해할 수없는 것입니다.python을 사용하여 json 파일의 디렉토리를 구문 분석하십시오.

+0

당신이'json' 모듈 봤어? 그것은 모든 일의 핵심입니다. 당신이'glob'을 사용한다면 당신이'os' 모듈을 필요로하는지 의심 스럽습니다. 당신은 하나 또는 다른 것이 필요하지만 둘 다 필요하지는 않습니다. 'open' 함수를 추가하면됩니다. – ShadowRanger

+0

한 번에 모든 것을하려고하는 것이 아니라 한 번에 한 걸음 씩 시작하십시오. _one_ 파일에서 ['open'] (https://docs.python.org/library/functions.html#open)을 사용하여 시작하여 ['json.load'] (https : //docs.python .org/library/json.html # json.load). 이제는 그 일을하는 함수가 생기고 정적 목록으로 이동 한 다음 glob로 생성 된 생성 된 목록을 계속 사용할 수 있습니다. – metatoaster

+0

'json' lib는 여러분의 가장 친한 친구입니다.'os'와'sys'가있는 오케스트라가 될 수 있습니다. –

답변

4

하여 JSON 파일이 .json 확장자로 명명한다고 가정하고 그들은 당신이에서 스크립트를 실행하는 동일한 디렉토리에 있는지 :

import json 
from glob import glob 

data = [] 
for file_name in glob('*.json'): 
    with open(file_name) as f: 
     data.append(json.load(f)) 

이렇게하면 구문 분석 된 JSON 객체 (사전의 목록을 제공합니다 및/또는 목록). 다른 디렉토리에있는 파일에 액세스해야하는 경우

이처럼 글로브 패턴을 구성 할 수 있습니다

import os.path 

pattern = os.path.join('/path/to/json/files', '*.json') 
for file_name in glob(pattern): 
    .... 
관련 문제