在 Gnome 上,我一直在使用 dconf。我正在尝试编写一些 Python 脚本来自己操作一些条目。其中一些具有a(ss)
类型。所以我的第一个问题是:这个类型是什么意思?
我正在这样处理 dconf:
from gi.repository import Gio
entries = Gio.Settings.new(path)
value1 = entries.get_string(key1) # for reading a string value
entries.set_string(key2, value2) # for writing a string value
这工作正常,直到我尝试使用类型为 a(ss)
的 key 。 get_string()
和 set_string()
方法由于类型错误而失败。所以我的第二个问题是:在这种情况下使用什么是正确的方法?
我在 Ubuntu 14.10 上使用 Python 3.4.2。
最佳答案
好吧,我的搜索没有透露任何内容,但通过尝试各种方法,我设法想出了一个解决方案:
from gi.overrides import GLib
value1 = entries.get_value(key1).unpack() # returns e.g. [("a", "b"), ("c", "d")]
entries.set_value(key2, GLib.Variant("a(ss)", value2)) # value2 is e.g. [("a", "b"), ("c", "d")]
由于这只是我自己想出的一段(工作)代码,没有完全理解发生了什么,所以在接受我自己的答案之前,我会等待一段时间,看看是否有人可以对这个问题提供更多的说明和/或提供一个更简洁的解决方案(或者至少让我放心,我做得对)。
关于python - dconf 中 a(ss) 类型的含义是什么? gi.repository.Gio.Settings 获取/设置此类字段的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29359241/