助け合いフォーラム
CCNP ENCOR(350-401)
問題ID : 36673
問題を開く
jsonモジュールのdumps関数を使い、辞書型データをJSON形式で書かれた文字列型データに変換し出力したい。
また、そのとき「,(カンマ)」と「:(コロン)」の後ろに付くスペースの数を変更したい。
空欄Aに当てはまるものはどれか。
この問題はプレミアムコンテンツです。
問題文の「辞書型データ」はJSON形式の文字列ではないでしょうか?
t
ta__kkun
投稿日 2024/04/01
問題文で「辞書型データ」として示されている部分は、JSON形式の文字列ではないでしょうか?
t
tym78
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さん、ご回答ありがとうございます。 完全に私の勘違いでした。 どこかで辞書型データの説明を見たとき、たまたまキーや値の文字列をシングルクォーテーションで括っていたので、シングルクォテーション=辞書型と思い込みをしていたようです。 失礼しました・・・