JSON ファイルにエントリが含まれているかどうかを確認したいです。
現在の json ファイルは次のようになります:
{
}
ユーザーが既に json ファイルに何かを追加しているかどうかを確認したいと考えています (たとえば、.x "stackoverflow": "test" など)。
このコードを使用すると、ファイル内のすべてのオブジェクトをリストできます
with open("keys.json") as f:
data = json.load(f)
for obj in data:
print(obj)
次に、json ファイルが空かどうかを確認したいので、そうしようと思いました。
with open("keys.json") as f:
data = json.load(f)
for obj in data:
if not obj:
print(Fore.LIGHTRED_EX + "No sites/TOTP codes have been added yet, add one first.")
残念ながら、これはうまくいきません。何かアイデアはありますか?
「これは機能しません」 - 説明してください。
– DYZ
2020 年 9 月 4 日 20:42
------------------------
ファイルが空のオブジェクトであるかどうかを確認するには、定義上、それを反復処理することはできません (反復するものは何もありません)
with open("keys.json") as f:
data = json.load(f)
if not data:
print("File is an empty structure") # empty dict or empty list
ほとんどのケースを処理するには、リストまたは辞書を使用できます
if not data:
print("File is an empty structure") # empty dict or empty list
elif isinstance(data, list):
for obj in data:
print(obj)
elif isinstance(data, dict):
for k, val in data.items():
print(k, "=", val)
------------------------
ファイルのサイズを確認できます。たとえば 2 バイト以下の要素はありません...
os.path.getsize("/path/file.ext")
これが目的かどうかわかりませんか?