2016-04-15 4 views

答えて

3
with open("sample.json") as f: 
    json_string = f.read() 

それを解析し、unparseする必要はありません。

無効なJSON上の例外を発生させる必要がある場合は、文字列を解析し、それをunparsingの作業を省略することができます:

with open("sample.json") as f: 
    json_string = f.read() 
json.loads(json_string) # Raises an exception if the JSON is invalid. 
+2

ファイルに有効なJSONデータが含まれていることを確認するには、 'json.load'部分が必要になる可能性があります。 –

+0

@Francisco:有効なJSONを含まないファイルで何が起こるべきかについての質問はありません。 – user2357112

+0

しかしタイトルは有効なJSONファイルについて質問しています。 – kirkpatt

1

JSONファイルは通常のファイルです。あなたはopen() itとread()です。それはあなたにstrを与えるでしょう。有効なJSONが含まれていることを確認したい場合は、上記コードのload部分をtry/exceptブロックに入れます。

1

それはPython的ですか、単に無意味が、検証が要件の一部である場合、あなたもこれを行うことができれば、私は知らない。

import json  
# I'm fully aware of the missing "ẁith" or "close" in the line below 
json_string = json.dumps(json.load(open('sample.json'))) 

は、そうでなければ、user2357112はすでにそれを言った:「解析する必要はありませんし、それを解析しなさい。

+0

ファイルハンドルを閉じる必要があると感じる場合は 'with'ブロックを追加します。それ以外の場合は、これはかなりです。 –

+0

Pythonicかどうか。あなたのコードは不完全です。 'close'はどこですか?コンテキストマネージャを使用することが最善の考えです。 –

+0

@ CPandaええ、私は自分自身を考えていましたが、ここでファイルをどのように閉じますか? – jDo

0

あなたは正しいことをしています。おそらく、パフォーマンスやメモリ最適化のために、さまざまな実装のライブラリを見つけることができます。 Python標準は信頼性が高く、ほとんどのケースをカバーし、他のプラットフォームと互換性があり、シンプルです。それはそれ以上の肥満を得ることはできません。

0

無効なJSONの例外を発生させる必要がある場合は、その方法は問題ありません。あなた避難所という、それは無効JSONであればそれはまだValueErrorを送出します、そして、あなたが知っている

import json 

with open("sample.json") as fp: 
    json_string = fp.read() 
json.loads(json_string) 

:あなたはすべてのファイルを変更していないことを確認する場合は、あなたがこのような何かを試みることができますデータをまったく変更しませんでした。私の頭の上から、何が変わるかもしれないのか疑問に思っているなら、dict項目の順序と空白、JSONに重複したキーがあるかどうかは言えません。

関連する問題