python - dconf 中 a(ss) 类型的含义是什么? gi.repository.Gio.Settings 获取/设置此类字段的正确方法是什么?

标签 python linux ubuntu gnome

在 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/

相关文章:

python - 如何计算 Pandas 数据框中满足 bool 条件的时间间隔数?

c - printf() 未打印正确的计算结果

asp.net-core - 502 Bad Gateway 在 Ubuntu 20.04 上的 NGINX 上运行 ASP .NET Core 5 站点

c - macOS 上的段错误,但 Ubuntu 上没有

python - 将 dict 的键和值从 str 转换为 Unicode 的最快方法?

python - 如何使用 Python 在 Windows 命令提示符下使用颜色?

c++ - Ubuntu Make 文件错误

php - 通过 php 将照片上传到 linux 服务器 - 一个文件夹可以拥有的最大文件数是多少?

java - 捕获符号 "*"作为 java 程序中的参数

python - 如何在 Makefile 中编写内联文件