第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何對字典進(jìn)行持久更改?

如何對字典進(jìn)行持久更改?

動漫人物 2021-10-10 14:03:41
我正在嘗試制作一個小應(yīng)用程序,它可以根據(jù)存儲的材料/濃度字典計算電荷重量。有時需要更新和存儲字典以備將來使用。下面的代碼片段要求用戶為 dict 提供新值,然后更新它。baseDict={'a':10, 'b':20, 'c':30, 'd':40}def updateDict(key, value):    temp = {key : value}    baseDict.update(temp)    return baseDictkey = str(input('Enter key\n'))value = input('Enter value\n')baseDict = updateDict(key, value)問題是當(dāng) shell 重新啟動時,baseDict 返回到原始值。我從 ~ 2010 年找到了類似問題的解決方案,但他們使用 Pickle、shelve、JSON 在單獨(dú)的文件中存儲/檢索 dict,并在每次運(yùn)行代碼時加載它。我打算將代碼轉(zhuǎn)換成一個小的 .exe 文件,以便在沒有 py 的計算機(jī)上運(yùn)行。任何關(guān)于如何使 baseDict 在這種環(huán)境中保持更新的建議將不勝感激。
查看完整描述

3 回答

?
郎朗坤

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個贊

使用jsonorpickle比保存明文并對其進(jìn)行ast.literal_evaling更好。我會推薦json:


對于json,首先運(yùn)行一次:


import json


with open('baseDict.json', 'w') as f:

    json.dump({'a':10, 'b':20, 'c':30, 'd':40}, f)

然后:


import json


with open('baseDict.json','r') as f:

    baseDict = json.load(f)


# your code


with open('baseDict.json', 'w') as f:

    json.dump(baseDict, f)

請參閱此處了解為什么json比ast.literal_eval.


查看完整回答
反對 回復(fù) 2021-10-10
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個贊

據(jù)我所知,保持這種更改的唯一方法是使用本地存儲。它可以與 Jsons、文本文件、數(shù)據(jù)庫一起使用,甚至您可以創(chuàng)建自己的編碼類型的文件。不過,大多數(shù)應(yīng)用程序都需要安裝,也許將您的數(shù)據(jù)加密并將其存儲在應(yīng)用程序在安裝過程中創(chuàng)建的目錄中的秘密文件中,這可能是您的選擇。


查看完整回答
反對 回復(fù) 2021-10-10
?
holdtom

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個贊

你可以把它保存到txt,然后再加載回來。


所以自己運(yùn)行一個代碼,如下所示:


with open('test.txt','w') as f:

    f.write("{'a':10, 'b':20, 'c':30, 'd':40}")

然后,使用以下代碼運(yùn)行另一個模塊:


import ast

with open('test.txt','r') as f:

    baseDict=ast.literal_eval(f.read().rstrip())


def updateDict(key, value):

    temp = {key : value}

    baseDict.update(temp)

    return baseDict


key = str(input('Enter key\n'))

value = input('Enter value\n')

baseDict = updateDict(key, value)

with open('test.txt','w') as f:

    f.write(str(baseDict))


查看完整回答
反對 回復(fù) 2021-10-10
  • 3 回答
  • 0 關(guān)注
  • 242 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號