Python嵌套Plist读写
Python nested Plist reading and writing
我有一个包含许多子节点的 plist。我似乎无法找到一种方法来深入访问这些节点并且只获取该层。所以在下面,我想获得测试人员编号。我可以打电话给
plist['Title']['Set']['Notes']['Tester']
但这会给我所有测试器密钥以及密钥 'Param' 和字符串 'WUT'。我需要对所有这些(并且有很多)进行索引,并且它们因文件而异。
<key>Title</key>
<dict>
<key>Set</key>
<dict>
<key>Notes</key>
<dict>
<key>Tester</key>
<array>
<dict>
<key>13</key>
<dict>
<key>Param</key>
<array>
<string>WUT</string>
</array>
</dict>
</dict>
<dict>
<key>82</key>
<dict>
<key>Param</key>
<array>
<string>WUT</string>
</array>
</dict>
</dict>
<dict>
<key>64</key>
<dict>
<key>Param</key>
<array>
<string>WUT</string>
</array>
</dict>
</dict>
理想情况下,我想获取数组中的值 [13, 82, 64]。
作为旁注,我知道我可以通过 xml.etree.ElementTree 库和 运行
来做到这一点
plist[0][11][3][1][2][1][x][0].text
和 运行 通过 for 循环,但对于我目前正在做的事情,plist 包更容易使用。
你很接近。您可以使用 dict.keys()
方法获取这些测试仪密钥。
tester_keys = list(plist['Title']['Set']['Notes']['Tester'].keys())
dict.keys()
returns 包含字典中键的序列(在您的例子中是数字)。然后使用 list()
.
将该序列转换为列表
我有一个包含许多子节点的 plist。我似乎无法找到一种方法来深入访问这些节点并且只获取该层。所以在下面,我想获得测试人员编号。我可以打电话给
plist['Title']['Set']['Notes']['Tester']
但这会给我所有测试器密钥以及密钥 'Param' 和字符串 'WUT'。我需要对所有这些(并且有很多)进行索引,并且它们因文件而异。
<key>Title</key>
<dict>
<key>Set</key>
<dict>
<key>Notes</key>
<dict>
<key>Tester</key>
<array>
<dict>
<key>13</key>
<dict>
<key>Param</key>
<array>
<string>WUT</string>
</array>
</dict>
</dict>
<dict>
<key>82</key>
<dict>
<key>Param</key>
<array>
<string>WUT</string>
</array>
</dict>
</dict>
<dict>
<key>64</key>
<dict>
<key>Param</key>
<array>
<string>WUT</string>
</array>
</dict>
</dict>
理想情况下,我想获取数组中的值 [13, 82, 64]。
作为旁注,我知道我可以通过 xml.etree.ElementTree 库和 运行
来做到这一点plist[0][11][3][1][2][1][x][0].text
和 运行 通过 for 循环,但对于我目前正在做的事情,plist 包更容易使用。
你很接近。您可以使用 dict.keys()
方法获取这些测试仪密钥。
tester_keys = list(plist['Title']['Set']['Notes']['Tester'].keys())
dict.keys()
returns 包含字典中键的序列(在您的例子中是数字)。然后使用 list()
.