助け合いフォーラム

Cisco

CCNP ENCOR(350-401)
問題ID : 36673
問題を開く
jsonモジュールのdumps関数を使い、辞書型データをJSON形式で書かれた文字列型データに変換し出力したい。 また、そのとき「,(カンマ)」と「:(コロン)」の後ろに付くスペースの数を変更したい。 空欄Aに当てはまるものはどれか。

この問題はプレミアムコンテンツです。

上に戻る

問題文の「辞書型データ」はJSON形式の文字列ではないでしょうか?

投稿日 2024/04/01

問題文で「辞書型データ」として示されている部分は、JSON形式の文字列ではないでしょうか?

2024/04/02 10:50

変数dataは波括弧「{}」で囲まれた「key: value」の形式になっており、辞書型データとして定義しているように見えますが、なぜそのように思われたのでしょうか?

試しに変数dataのデータ型をtype()を使って確認すると、以下のようになります。
(dataの中身は長いので少し省略してますがご了承ください)

[test.py]

import json

data = {
    "hostname": "RouterA",
    "interfaces": {
        "Loopback0": {
            "ipv4-address": "1.1.1.1",
            "subnet-mask": "255.255.255.255",
            "shutdown": "no"
        }
    }
}

#変数dataのデータ型を出力
print(type(data))

#辞書型の変数dataを文字列型に変換して、変数data2に代入
data2 = (json.dumps(data, separators=(',', ':')))

#変数data2のデータ型を出力
print(type(data2))

#変数data2を出力
print(data2)

[実行結果]

C:\> python test.py
<class 'dict'>
<class 'str'>
{"hostname":"RouterA","interfaces":{"Loopback0":{"ipv4-address":"1.1.1.1","subnet-mask":"255.255.255.255","shutdown":"no"}}}

1行目の<class 'dict'>という出力から変数dataは辞書型だとわかります。
2行目の<class 'str'>という出力から変換後の変数data2は文字列型だとわかります。


コメント

t ta__kkun

2024/04/02 23:31

tym78さん、ご回答ありがとうございます。 完全に私の勘違いでした。 どこかで辞書型データの説明を見たとき、たまたまキーや値の文字列をシングルクォーテーションで括っていたので、シングルクォテーション=辞書型と思い込みをしていたようです。 失礼しました・・・

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?