Python読み書きJsonリスト操作練習

2213 ワード

Jsonは簡単にJavaScriptのオブジェクトと配列であるため、この2つの構造はオブジェクトと配列の2つの構造(Jsonのフォーマットと使用を参照)であり、Pythonの辞書とリストの2つのデータ構造に対応している.このことがわかったら、PythonがJsonファイルを操作する本質は操作リストや辞書であることがわかります.今日はPythonのJsonのリストを読み書きする小さなプログラムを書いて練習しました.本稿では、基本的な操作の紹介は行いません.基本的な操作の実践訓練であり、ドキュメントに名前文字列を書き込んで読み取る操作をシミュレートします.
import json

def get_stored_name():
    '''   json       '''
    try:
        with open("nameCollect.json", "r") as file_obj:
            name_lsit = json.load(file_obj)
    except FileNotFoundError:
        name_lsit = None
    file_obj.close()
    return name_lsit

def get_new_name():
    '''   json         ,           ,        '''
    try:
        with open("nameCollect.json", "r") as file_obj:
            name_list = json.load(file_obj)    
    except FileNotFoundError:
        name_list = []
    if name_list is None:
        name_list = []
    '''                   json    '''
    while True:
        username = input("Please input a name(enter \"q\" to exit):  ")
        if username != "q":
            name_list.append(username)
        else:
            break        
    with open("nameCollect.json", "w") as file_obj:
        json.dump(name_list, file_obj)
    file_obj.close()
    return name_list

def say_hi():
    '''                    '''
    while True:
        flg = input("Enter \"1\" to write names into the file, enter \"2\" to say \"Hi\": ")
        if flg == "1":  #       ,        
            get_new_name()
        elif flg == "2":    #       ,           
            name_list = get_stored_name()
            if not name_list:
                name_list = get_new_name()  #       ,            
            break
        else:
            print("Sorry, you must input 1 or 2.")
    '''     ,    ;         ,           '''
    if name_list:
        for name in name_list:
            print("Hi, " + name + "!")
    else:
        print("Oh, you didn't input anything here.")
    
say_hi()

討論を歓迎する.