json.dumpsとjson.loadの違いは何ですか?[閉まっている]


143

違いは何であるjson.dumpsとはjson.load

私の理解では、JSONを辞書にロードし、別のオブジェクトをオブジェクトにロードします。

回答:


190

dumps オブジェクトを受け取り、文字列を生成します。

>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'

load ファイルのようなオブジェクトを受け取り、そのオブジェクトからデータを読み取り、その文字列を使用してオブジェクトを作成します。

with open('file.json') as fh:
    a = json.load(fh)

なお、dumpおよびloadファイルやオブジェクト、しばらくの間の変換dumpsloadsの間の変換、文字列やオブジェクト。s-less関数は、s関数のラッパーと考えることができます。

def dump(obj, fh):
    fh.write(dumps(obj))

def load(fh):
    return loads(fh.read())

これは私の理解に非常に役立ちます。それでも、すべてがPythonのオブジェクトであると思ったので、少し混乱しています。文字列はそれ自体がオブジェクトではないのですか?では、どうすれば2つの間で変換できますか?ばかげた質問でごめんなさい。
Bowen Liu

object「違うタイプのもの」という意味で使っていstrます。のような文字列'"foo"'Python strオブジェクトにデコードされます'foo'。以下のような文字列"[1,2,3]"Pythonのリストにデコードされる[1,2,3]など、
chepner

dumps()dump()loads()load()
-JSON

74

json読み込み-> jsonオブジェクトを表す文字列からオブジェクトを返します。

json dumps->オブジェクトからjsonオブジェクトを表す文字列を返します。

ロードおよびダンプ->文字列の代わりにファイルの読み取り/書き込み


10
> jsonダンプ-> dictからjsonオブジェクトを表す文字列を返します。それは近いですが、json.dumps()に渡すディクテーションである必要はありません。あなたは、リスト、または文字列、またはブール値を渡すことができます...
ロス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.