我有一个看起来像这样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