from kivy.storage.jsonstore import JsonStore
def ContactCallback(instance):
Friends = JsonStore('friendslist/'+accountname+'/offline.json')
Friends.put(
str(FriendsDatabase.get('Counter')['Count']),
Nickname=NicknameIn.text,
TimeZone=TzIn.text,
Discord=DiscordIn.text,
Hypixel=HypixelIn.text,
Badlion=BadlionIn.text,
Other1=Other3In.text,
Other2=Other2In.text
)
FriendsDatabase.put(
'Counter',
Count=1 + ((FriendsDatabase.get('Counter')['Count']))
)
testlist = (SimpleListAdapter(
data=database,
cls=ListItemButton
))
我尝试使用python 2.7,kivy和JsonStore创建联系人列表。我的GUI创建了一个带有文本输入的弹出窗口,这些输入被填入,一旦按下保存按钮,就会触发该功能。
此函数创建一个文件,并在该文件中创建一个列表,列表名称为联系人姓名,然后所有其他信息(如discord等)成为该列表的一部分。
我想要做的是创建一个可滚动的GUI来查看我列表中的所有已保存的联系人,为此我尝试使用JsonStore创建另一个列表但遇到了大量问题。请帮忙!
我需要一种方法来调用列表,这样我就可以使用以下内容创建GUI:
NameList = JsonStore('friendslist/db.json')
NameList.put('namelist', NameIn.text)
答案 0 :(得分:0)
我已经删除了很多问题,这将保存并打印联系人列表。
我也想使用json
库。
import json
# List of contacts,
contacts = [("Jason", ["zomboid12321", "json@example.org"]),
("Ruby", ["tigerboy15", "rubylang@example.com"]),]
# Load an empty JASON file with only a list of contacts,
# Note: you could also use the `open` statement to load from
# - an already saved JSON.
j = json.loads("""
{
"contacts": []
}
""")
# Write contacts into JSON file,
with open('offline.json', 'w') as f:
for contact in contacts:
j["contacts"].append({contact[0]:contact[1]})
f.write(json.dumps(j))
# Read contacts from file,
for contact in j['contacts']:
name, info = list(contact.items())[0]
print(name, info)
它会将contacts
保存到offline.json
文件中,然后它会将json
读入列表,它应该执行您提出的所有问题:)
另外,您可以打开json
而不是{ "contacts": [] }
字符串,然后删除写入。这样,您就可以打开之前保存的json
。