Каждый раз, когда я получаю 500 записей из файла file1, чтобы присоединиться к file2, который содержит более 100000 записей, это стоит две минуты !!
with open(file1,'r') as f1,open(file2,'r') as f2:
a = json.load(f1)
b = json.load(f2)
list_a = []
for i in range(len(a)):
for n in range(len(b)):
if b[n]["id"] == a[i]["id"]:
list_a.append(dict(b[n], **a[i]))
with open(result,'w') as f3:
json.dump(list_a, f3,sort_keys=True, ensure_ascii=False)
File1:
[{ "id":"1", "name":"Tom" },
{ "id":"2", "name":"Jim" },
{ "id":"3", "name":"Bob" },
{ "id":"4", "name":"Jeny" },
{ "id":"5", "name":"Lara" },
{ "id":"6", "name":"Lin" },
{ "id":"7", "name":"Kim" },
{ "id":"8", "name":"Jack" },
{ "id":"9", "name":"Tony" }]
Файл 2:
[ { "id":"1", "Details":[ { "label":"jcc", "hooby":"Swimming" }, { "label":"hkt", "hooby":"Basketball" }, ] },
{ "id":"2", "Details":[ { "label":"NTC", "hooby":"Games" } ] } ]
Результат:
[ { "id":"1", "name":"Tom", "Details":[ { "label":"jcc", "hooby":"Swimming" }, { "label":"hkt", "hooby":"Basketball" }, ] },
{ "id":"2", "name":"Jim", "Details":[ { "label":"NTC", "hooby":"Games" } ] } ]