json
ライブラリを使用してJSONファイルを読み取り、データをJSON形式で保存することができます。
次の内容につきどのように実装するかを知ってみましょう。
JSON形式でファイルに保存
jsonライブラリは、Pythonのdict、listオブジェクトを直接JSONファイルとして保存することができように助けてくれます。
以下は、dictオブジェクトをJSONファイルとして保存する例を示します。
import json
file_path = "./sample.json"
data = {}
data['posts'] = []
data['posts'].append({
"title": "How to get stroage size",
"url": "https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/",
"draft": "false"
})
data['posts'].append({
"title": "Android Q, Scoped Storage",
"url": "https://codechacha.com/ko/android-q-scoped-storage/",
"draft": "false"
})
print(data)
with open(file_path, 'w') as outfile:
json.dump(data, outfile)
sample.json
ファイルを出力してみると、次のとおりです。
$ cat sample.json
{"posts": [{"title": "How to get stroage size", "url": "https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/", "draft": "false"}, {"title": "Android Q, Scoped Storage", "url": "https://codechacha.com/ko/android-q-scoped-storage/", "draft": "false"}]}
上記のsample.jsonファイルは空白が削除されたため表示は困難です。
上記のコードで json.dump()
の indent
オプションを与える見事writeになります。
with open(file_path, 'w') as outfile:
json.dump(data, outfile, indent=4)
indentオプションを適用した結果は次のとおりです。
{
"posts": [
{
"title": "How to get stroage size",
"url": "https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/",
"draft": "false"
},
{
"title": "Android Q, Scoped Storage",
"url": "https://codechacha.com/ko/android-q-scoped-storage/",
"draft": "false"
}
]
}
JSONファイルの読み取り
JSONファイルを読んdictオブジェクトにすることができます。
以下は、 sample.json
ファイルを読んでdictにインポート例です。
import json
file_path = "./sample.json"
with open(file_path, "r") as json_file:
json_data = json.load(json_file)
print(json_data)
print("")
print(json_data['posts'])
print("")
print(json_data['posts'][0]['title'])
結果
{'posts': [{'title': 'How to get stroage size', 'url': 'https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/', 'draft': 'false'}, {'title': 'Android Q, Scoped Storage', 'url': 'https://codechacha.com/ko/android-q-scoped-storage/', 'draft': 'false'}]}
[{'title': 'How to get stroage size', 'url': 'https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/', 'draft': 'false'}, {'title': 'Android Q, Scoped Storage', 'url': 'https://codechacha.com/ko/android-q-scoped-storage/', 'draft': 'false'}]
How to get stroage size
既存のJSONファイルに内容を追加して再保存
既存のJSONファイルを読んで、そこにアイテムをもう1つ追加して再保存することもできます。
以下は、既存のsample.jsonを読んで、そこにリストを一つ追加して再保存する例を示します。
import json
file_path = "./sample.json"
json_data = {}
with open(file_path, "r") as json_file:
json_data = json.load(json_file)
json_data['posts'].append({
"title": "How to parse JSON in android",
"url": "https://codechacha.com/ko/how-to-parse-json-in-android/",
"draft": "true"
})
with open(file_path, 'w') as outfile:
json.dump(json_data, outfile, indent=4)
sample.json
に保存された内容
{
"posts": [
{
"title": "How to get stroage size",
"url": "https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/",
"draft": "false"
},
{
"title": "Android Q, Scoped Storage",
"url": "https://codechacha.com/ko/android-q-scoped-storage/",
"draft": "false"
},
{
"title": "How to parse JSON in android",
"url": "https://codechacha.com/ko/how-to-parse-json-in-android/",
"draft": "true"
}
]
}
参考
Related Posts
- Python - JSONファイル読み書きする方法
- Python - 平方根の計算方法(Square Root)
- Python - 文字列 特定文字 削除
- Python lower() 文字列を小文字に変換
- Python upper() 文字列を大文字に変換
- Python - ファイル数の確認
- Python - イテレーションステートメントでセット巡回
- Python - 文字列位置(Index)を探す
- Python - ファイルを読み込み、1行ずつリストに保存する
- UbuntuにPython 3.10をインストールする方法
- Python - 関数の定義と呼び出し方法
- Python - ディクショナリーの整理と例
- Python - ディクショナリーの初期化、4つの方法
- Python - XML生成とファイルの保存
- Python - XML解析、タグ、または要素別に読み取る
- Python - 文字列をリストに変換する方法
- Python - 'and'と'&'の違い
- Python - 文字列 切り取り(substring、slicing)
- Python - 'is'と'=='の違い
- PythonでShell Command、スクリプトの実行
- Python - 数字3桁ごとにコンマ(,)を入れる方法
- Python - 辞書をリストに変換
- Python - 文字列から数字のみを抽出する方法
- Python - zipで二つのリスト縛り
- Python - リストを文字列に変換する
- Python - 辞書にキーがあることを確認する
- Python - ファイル、フォルダが存在確認
- Python - floatをintに変更する方法
- Python - リストの最初、最後の 要素を取得する方法
- Python - bytesをStringに変換する方法
- Python - Stringをbytesに変換する方法
- Python - 辞書の重複排除方法
- Python - 二つのリスト一つ併合
- Python - リストの重複排除、4つの方法
- Python - listの先頭にデータを追加する