0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonコードにJSONを書く方法(本当の意味で)

Last updated at Posted at 2024-11-23

概要

JSONは本来JavaScript実行環境でJavaScriptとしてそのまま実行できることが特徴のデータ形式ですが、同じことをPythonでやる方法を思いついたのでメモ。

やり方

Pythonではbool値はTrue,False(先頭が大文字)、nullに相当する値はNoneですが、幸いなことにJSONで使うture,false,nullはPythonにおいては予約語ではなく変数として定義できるので、これらにそれぞれTrue,False,Noneを代入して定義すれば、Pythonの辞書リテラルをJSONと全く同じ表記で書くことができます。

JavaScriptとは違い、Pythonの辞書リテラルはキー名をクォーテーションで囲む必要があるのでよりJSONっぽいです。

true = True
false = False
null = None

print(
{
    "name": "John",
    "age": 30,
    "married": true,
    "divorced": false,
    "children": [
        {
            "name": "Ann",
            "age": 5
        },
        {
            "name": "Sally",
            "age": 7
        }
    ],
    "nulldata": null
}
)

# -> {'name': 'John', 'age': 30, 'married': True, 'divorced': False, 'children': [{'name': 'Ann', 'age': 5}, {'name': 'Sally', 'age': 7}], 'nulldata': None}

# 上記の表記が正当なJSONであることを確認するために同じ内容をjson.loadsでロードしてみる

import json

print(json.loads("""
{
    "name": "John",
    "age": 30,
    "married": true,
    "divorced": false,
    "children": [
        {
            "name": "Ann",
            "age": 5
        },
        {
            "name": "Sally",
            "age": 7
        }
    ],
    "nulldata": null
}
"""))

# -> {'name': 'John', 'age': 30, 'married': True, 'divorced': False, 'children': [{'name': 'Ann', 'age': 5}, {'name': 'Sally', 'age': 7}], 'nulldata': None}

使い道

あるの…?思いついたのはPythonコードを別のプログラムで生成しそこにJSONを埋め込むような時にプログラムや生成するPythonコード上でJSONをパースする処理を書く必要がなくなるくらい?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?