【问题标题】:Creating a list of keys for calling创建用于呼叫的键列表
【发布时间】:2017-12-01 08:35:52
【问题描述】:
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 创建了一个带有文本输入的弹出窗口,这些文本输入被填充,一旦按下保存按钮,就会触发该功能。

此函数创建一个文件,并在该文件内创建一个列表,列表名称为联系人名称,然后他们的所有其他信息(例如不和谐等)都将成为该列表的一部分。

我想要做的是创建一个可滚动的 GUI 来查看我列表中所有已保存的联系人,为此我试图使用 JsonStore 创建另一个列表,但遇到了一大堆问题。请帮忙!

我需要一种调用列表的方法,这样我就可以使用以下方式创建 GUI:

NameList = JsonStore('friendslist/db.json')
NameList.put('namelist', NameIn.text)

【问题讨论】:

  • 所以你的意思是你希望能够使用字符串运行函数?
  • 对不起,我不想在offline.json文件中列出列表名称

标签: python kivy jsonstore


【解决方案1】:

我已经把你的问题删掉了很多,这将保存并打印联系人列表。

我也喜欢使用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

【讨论】:

  • 我还是很困惑。对不起!我正在尝试使用 kivy JsonStore,并且我正在使用 put 函数将来自 kivy 文本输入的输入抓取到 Json 中。然后我需要创建一个键列表,这样我就可以使用键名称绘制一个 GUI,当单击时,从列表中调用单个项目以在 GUI 中操作它们,例如更改字体大小或移入布局。我只是很困惑,以至于我的问题措辞很糟糕 D:
  • 我的 GUI 工作正常,我可以使用上面的代码保存到 Json,我只是不知道如何创建键列表
  • 那么keys 是什么意思?字典键?因此,据我了解,您想保存可以检索的keys 列表吗?如果要求你必须使用JsonStore来做json读写,我不知道我是否可以帮助:( PS还要记住json库是标准的,还有代码上面产生了一个列表:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 2015-11-04
  • 1970-01-01
相关资源
最近更新 更多