如何通过存储在不同 .json 文件中的键来分隔 .json 文件?
How can I separate a .json file by keys stored in a different .json file?
我有两个文件,一个包含这种类型的数据:
{"v_uqiMw7tQ1Cc": {"duration": 55.15, "timestamps": [[0.28, 55.15], [13.79, 54.32]]}, "v_bXdq2zI1Ms0": {"duration": 73.1, "timestamps": [[0, 10.23], [10.6, 39.84], [38.01, 73.1]]}
另一个文件包含拆分 ID:
{train_set:{"v_uqiMw7tQ1Cc","v_uqiMfergQ1Cc"}, test_set:{"v_bXdq2zI1Ms0", "v_bXdfreht2Ms0"}}
如何更改第一个文件以使其拥有它所属的子集?:
{"v_uqiMw7tQ1Cc": {"duration": 55.15, subset: "train", "timestamps": [[0.28, 55.15], [13.79, 54.32]]}, "v_bXdq2zI1Ms0": {"duration": 73.1, subset: "test", "timestamps": [[0, 10.23], [10.6, 39.84], [38.01, 73.1]]}
试试下面的代码,我想这就是你要找的
import json
with open('json_file/json_set1.json') as f1:
file1 = json.load(f1)
with open('json_file/json_set2.json') as f2:
file2 = json.load(f2)
print(file1)
{'v_uqiMw7tQ1Cc': {'duration': 55.15, 'timestamps': [[0.28, 55.15],
[13.79, 54.32]]}, 'v_bXdq2zI1Ms0': {'duration': 73.1, 'timestamps':
[[0, 10.23], [10.6, 39.84], [38.01, 73.1]]}}
print(file2)
{'train_set': ['v_uqiMw7tQ1Cc', 'v_uqiMfergQ1Cc'], 'test_set':
['v_bXdq2zI1Ms0', 'v_bXdfreht2Ms0']}
for key1, val2 in file1.items():
for key2, val2 in file2.items():
if key1 in file2[key2]:
file1[key1].update({'subset': key2})
print(file1)
{'v_uqiMw7tQ1Cc': {'duration': 55.15, 'timestamps': [[0.28, 55.15],
[13.79, 54.32]], 'subset': 'train_set'},
'v_bXdq2zI1Ms0': {'duration':
73.1, 'timestamps': [[0, 10.23], [10.6, 39.84], [38.01, 73.1]], 'subset': 'test_set'}}
我有两个文件,一个包含这种类型的数据:
{"v_uqiMw7tQ1Cc": {"duration": 55.15, "timestamps": [[0.28, 55.15], [13.79, 54.32]]}, "v_bXdq2zI1Ms0": {"duration": 73.1, "timestamps": [[0, 10.23], [10.6, 39.84], [38.01, 73.1]]}
另一个文件包含拆分 ID:
{train_set:{"v_uqiMw7tQ1Cc","v_uqiMfergQ1Cc"}, test_set:{"v_bXdq2zI1Ms0", "v_bXdfreht2Ms0"}}
如何更改第一个文件以使其拥有它所属的子集?:
{"v_uqiMw7tQ1Cc": {"duration": 55.15, subset: "train", "timestamps": [[0.28, 55.15], [13.79, 54.32]]}, "v_bXdq2zI1Ms0": {"duration": 73.1, subset: "test", "timestamps": [[0, 10.23], [10.6, 39.84], [38.01, 73.1]]}
试试下面的代码,我想这就是你要找的
import json
with open('json_file/json_set1.json') as f1:
file1 = json.load(f1)
with open('json_file/json_set2.json') as f2:
file2 = json.load(f2)
print(file1)
{'v_uqiMw7tQ1Cc': {'duration': 55.15, 'timestamps': [[0.28, 55.15], [13.79, 54.32]]}, 'v_bXdq2zI1Ms0': {'duration': 73.1, 'timestamps': [[0, 10.23], [10.6, 39.84], [38.01, 73.1]]}}
print(file2)
{'train_set': ['v_uqiMw7tQ1Cc', 'v_uqiMfergQ1Cc'], 'test_set': ['v_bXdq2zI1Ms0', 'v_bXdfreht2Ms0']}
for key1, val2 in file1.items():
for key2, val2 in file2.items():
if key1 in file2[key2]:
file1[key1].update({'subset': key2})
print(file1)
{'v_uqiMw7tQ1Cc': {'duration': 55.15, 'timestamps': [[0.28, 55.15], [13.79, 54.32]], 'subset': 'train_set'},
'v_bXdq2zI1Ms0': {'duration': 73.1, 'timestamps': [[0, 10.23], [10.6, 39.84], [38.01, 73.1]], 'subset': 'test_set'}}