创建用于调用

时间:2017-06-28 06:01:04

标签: python kivy jsonstore

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)

1 个答案:

答案 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