以下は、私が現在やっていることです。より良い方法があるかどうかは疑問です。有効なjsonファイルを文字列に変換する最もPythonの方法は何ですか?
with open("sample.json", "r") as fp:
json_dict = json.load(fp)
json_string = json.dumps(json_dict)
以下は、私が現在やっていることです。より良い方法があるかどうかは疑問です。有効なjsonファイルを文字列に変換する最もPythonの方法は何ですか?
with open("sample.json", "r") as fp:
json_dict = json.load(fp)
json_string = json.dumps(json_dict)
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.
JSONファイルは通常のファイルです。あなたはopen()
itとread()
です。それはあなたにstr
を与えるでしょう。有効なJSONが含まれていることを確認したい場合は、上記コードのload
部分をtry/except
ブロックに入れます。
それは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はすでにそれを言った:「解析する必要はありませんし、それを解析しなさい。
ファイルハンドルを閉じる必要があると感じる場合は 'with'ブロックを追加します。それ以外の場合は、これはかなりです。 –
Pythonicかどうか。あなたのコードは不完全です。 'close'はどこですか?コンテキストマネージャを使用することが最善の考えです。 –
@ CPandaええ、私は自分自身を考えていましたが、ここでファイルをどのように閉じますか? – jDo
あなたは正しいことをしています。おそらく、パフォーマンスやメモリ最適化のために、さまざまな実装のライブラリを見つけることができます。 Python標準は信頼性が高く、ほとんどのケースをカバーし、他のプラットフォームと互換性があり、シンプルです。それはそれ以上の肥満を得ることはできません。
無効なJSONの例外を発生させる必要がある場合は、その方法は問題ありません。あなた避難所という、それは無効JSONであればそれはまだValueErrorを送出します、そして、あなたが知っている
import json
with open("sample.json") as fp:
json_string = fp.read()
json.loads(json_string)
:あなたはすべてのファイルを変更していないことを確認する場合は、あなたがこのような何かを試みることができますデータをまったく変更しませんでした。私の頭の上から、何が変わるかもしれないのか疑問に思っているなら、dict項目の順序と空白、JSONに重複したキーがあるかどうかは言えません。
ファイルに有効なJSONデータが含まれていることを確認するには、 'json.load'部分が必要になる可能性があります。 –
@Francisco:有効なJSONを含まないファイルで何が起こるべきかについての質問はありません。 – user2357112
しかしタイトルは有効なJSONファイルについて質問しています。 – kirkpatt