Kivy:使用 kivy.storage.jsonstore 在另一个 JSON 对象中添加 JSON 对象

Kivy: Add JSON Object inside another JSON Object using kivy.storage.jsonstore

我是 kivy 新手。我想将 KivyApplication 的设置保存在 JSON 文件中。

我想创建这样的 JSON 文件:

{
  "users": [
    {
      "user_name": "person_1",
      "password": "1234"
    },
    {
      "user_name": "person_2",
      "password": "5678"
    }
  ]
}

我在 Kivy API 参考网页 (Kivy JSON Storage Example) 中找到了一个示例。

这是我将多个 JSON 对象添加到主 JSON 对象的解决方案:

JsonStore.py:

from kivy.storage.jsonstore import JsonStore

store = JsonStore('hello.json')

users_list = [{"user_name": "person_1", "password": "1234"},
              {"user_name": "person_2", "password": "5678"}]
# put some values
for u in users_list:
    print(u)
    store.put('users', u)

但是出现这个错误:

store.put('users', u)
TypeError: put() takes 2 positional arguments but 3 were given

有谁知道我做错了什么以及如何解决这个问题?提前谢谢你...

结构是由 put(object_name, attribute1=value1[, attribute2=value2, ...]) 预定义的。

要完成你想要的,你必须给 users 一个键来保存你的对象列表。

长话短说,这段代码应该有效:

from kivy.storage.jsonstore import JsonStore

store = JsonStore('hello.json')

users_list = [{"user_name": "person_1", "password": "1234"},
          {"user_name": "person_2", "password": "5678"}]

store.put('users', objects=users_list)