我有一個看起來像這樣JSON文件如何所有列表轉換爲集:當JSON文件加載
{
"K1": {
"p": [
"A"
],
"s": [
"B",
"C"
]
},
"K2": {
"p": [
"A",
"F"
],
"s": [
"G",
"H",
"J"
]
}
}
我可以在這個數據很容易讀:
import json
with open('json_lists_to_sets.json') as fi:
data = json.load(fi)
然後data
看起來如下:
{u'K2': {u'p': [u'A', u'F'], u's': [u'G', u'H', u'J']}, u'K1': {u'p': [u'A'], u's': [u'B', u'C']}}
但是,對於我的進一步分析,最好是使用sets
而不是lists
。當然,我可以轉換lists
到sets
我已經在數據讀取之後:
for vi in data.values():
vi['p'] = set(vi['p'])
vi['s'] = set(vi['s'])
這給了我想要的輸出:
print data['K2']
產量
{u'p': {u'A', u'F'}, u's': {u'G', u'H', u'J'}}
我的問題是,是否我當我讀入json.load
命令中的數據時,可以直接將這些lists
轉換爲sets
,所以有些像「將所有列表轉換爲設置」。有這樣的事情存在嗎?
工作正常,upvoted。不會有任何嵌套列表,但感謝提到'frozenset'部分;以前沒有聽說過這個。 – Cleb