python - json ファイルにエントリがあるかどうかを確認する

okwaves2024-01-25  9

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")

これが目的かどうかわかりませんか?

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。