2017-07-17 11 views
0

私は、生成されたJSONオブジェクトをファイルに追加した後、すべてのオブジェクトをコンマで区切ります(open( "filename.txt"、 "w")を使用します)。これのための方法)。 * .txtファイルにJSONオブジェクトを追加するのではなく、何を提案することができますか?すべてのループで複数のJSONファイルを作成できますか? 将来的には、JSONに格納されたデータを使用して計算を行う必要があるため、構造の整った構造を作成する方法を探しています。 ありがとうございます。複数のJSONファイルをPythonからプログラムで作成して保存する

+1

JSON objからデータを抽出してデータベースに保存してみませんか? –

+0

まず、このデータを作成する必要があります。そのため、JSONファイルを作成する方法を探しています。今のところ、次のようになります:(generate_data、10) - 出力として私は10個のjsonオブジェクトをtxtファイルに持っています。私がこのファイルからデータを抽出でき、私がそれをどうやって行うことができるか教えていただけたら、私はそれを感謝します。 –

+0

これは標準的なPythonのループ構造と制御構造です。インターネットはPythonでこれを行う方法に関する優れた情報源でいっぱいです(例えば、http://www.oreilly.com/programming/free/files/a-whirlwind-tour-of-python.pdf) –

答えて

1

あなたは本当にファイルを出力したい場合は、あなただけ別にそうのようなPythonのjsonモジュール(docs)を使用して、それらをダンプすることができます。これは、あなたのファイルの多くを与える

import json 
json.dump(json_object, filename) 

あなたがする必要があります必要に応じて、json.load()を使用して再度読み込みます。

また、いくつかのjsonオブジェクトを1つのテキストファイルに保存してから繰り返し処理し、json.loadsを使用して個々のアイテムを読み取ることもできます。末尾にがあることに注意してください。つまり、フィードに含まれる任意の文字列、たとえばファイル内の行を変換します。

for line in f: 
    input_json = json.loads(line) 
    #you'll want to store this somewhere, e.g. in a dictionary. 

しかし、上記のコメントで指摘したように、そのパスが下位になるかどうかを再検討することをおすすめします。

0

ストレージシステムにファイルがあるとします。

私は最後にデータを書き、データのリストを作成します。

import json 
results = [] 
# Your loop 
foreach element in elements: 
    element_json_object = ... # Construct a JSON object here 
    results.append(element_json_object) 

data = { 
    "results": results 
} 

with open('data.json', 'w') as outfile: 
    json.dump(data, outfile) 

計算を実行するたびに、すべてのJSONファイルをロードする必要があります。 ファイルを更新する場合は、すべてをロードし、JSONデータを更新してからファイルを再度保存する必要があります。

このソリューションは高価です。そのため、MangoDBのようなデータベースを使用することをお勧めします。

しかし、あなたは何をしなければならないのか(学校のプロジェクト?)、ファイルの保存で十分であることがあります。

以下は、アップデートのサンプルです。

results = [] 
with open('data.json') as data_file:  
    data = json.load(data_file) 
    results = data["results"] 
    # You can update your data here 
    for result in results: 
     if result["id_test"] == 15: 
      result["data_test"] = "DATA UPDATED" 
data = { 
    "results": results 
} 

with open('data.json', 'w') as outfile: 
    json.dump(data, outfile) 
関連する問題