2016-09-16 8 views
1

これを行う方法を探していましたが、できません。 私は.jsonファイルのディレクトリを持っており、それぞれを解析することになっています。 私はglobとosを使わなければならないことを知っています。 私はそれの背後にある論理は、ディレクトリ上のループだと思って、各ファイルを読むときに必要なデータを抽出するとき、私は助けて構文を知ることができません。 スタックルールと人に対して、これは私が宿題に答えようとしていると思うならば、私は別の場所で検索することができます。これは宿題ではなく、わかりません。pythonでjsonファイルのディレクトリを解析する

+0

あなたは 'json'モジュールで見たことがありますか?それは全部の要点のようなものです。 'glob'を使っているのなら' os'モジュールが必要なのか疑問です。どちらか一方が必要ですが、両方は必要ありません。 'open'関数を追加してください。それはそれだと思います。 – ShadowRanger

+0

一度にすべてをやろうとするのではなく、一度に1つのステップを開始しますか? _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'は' 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): 
    ....