2016-08-24 7 views
0

私は、生徒と成績を含むJSON構造をランダムに作成するPythonスクリプトを作成しました。各学生を作成するためのスクリプトとその最終成績は次のとおりです。複数の関連JSON構造をPython上の1つのファイルで読み書きするには?

このようなファイルに結果の
import json 
for i in range(1000): 
    finalMedia = {"name":"name", "media":media} 
    json.dump(finalMedia, open("xtext.txt",'w')) 
    txt.write("\n") 

:それは読書に来るとき

... 
{"media": 7, "nome": "Bernardo"} 
{"media": 7, "nome": "Isadora"} 
{"media": 7, "nome": "Pedro"} 
{"media": 9, "nome": "Agatha"} 
... 

、私はまた、JSONモジュールを使用して別のスクリプトを書きました:

import json 
data = json.load(open("xtext.txt")) 
print data 

私は、全体のファイルデータを期待していたが、代わりに、私は次のエラーを取得しています:Extra data: line 2 column 1 - line 1001 column 1 (char 32 - 31997)

最初は、エラーが行を破った結果であると思った。私はtxt.write( "\ n")を削除することに決めましたが、その後も同じエラーが発生していました。次に、私はtxt.write( "\ n")をtxt.write( "、")に変更しようとしましたが、それもうまくいきませんでした。だからエラーは私の読書にあるはずです。 JSONモジュールと何か関係がありますか、それとも実際にファイルを書いているのですか?

答えて

3
data = map(json.loads,open("xtext.txt")) 

medias = [{"name":"name", "media":media} for name,media in all_media] 
json.dump(medias,open("xtext.txt","wb")) 
+0

ありがとうたら本当にあなただけのjson.dumpを書くべきであるが、それぞれのラインは、JSON構造である...しかしとき一緒に有効ではありませんJSON thatsの単一のファイルとして

あなたの簡単な答えのために、私はあなたの最初の解決策を試してみました。 "map"を使って、Pythonはこのエラーを返します:AttributeError: 'str'オブジェクトに属性 'read'がありません。私はあなたの第二の解決策を試してみるつもりです。ありがとうございました。 –

+0

@VitorFigueredo whoopsは 'json.loads'だったはずです。文字列はファイルではありません。(固定) –

+0

それは動作します!ありがとう! –

関連する問題