Вместо зацикливания внешнего файла curlloop1.py
в другом файле, вы можете просто добавить общий цикл for, который выполняется 20 раз, собрать все словари в списке, а затем сохранить этот список как словарь в одном файле
import faker
import json
from faker import Faker
import random
from random import randint
import subprocess
import json
import os
#subprocess.call([""])
from pprint import pprint
ids= ('5cda','7f36')
fake = Faker('en_US')
msg_list = []
#Overall loop to run inner loop 20 times
for _ in range(20):
#Loop to generate messages
for ind in ids:
cont = []
#Overall dictionary with first and user_ids
dct = {}
for idx in range(20):
sms = {
"id":"AB-Iasd",
"body": fake.sentence(),
"reae": fake.ean(),
"ashe": fake.ean(),
"id2": fake.ean(),
"user_id": ind,
"pid": fake.sentence()
}
cont.append(sms)
#Use a dictionary to save cont list to first key, and ind to user_ids key
dct['messages'] = cont
dct['user_id'] = ind
msg_list.append(dct)
#Saving overall data to a single dictionary and to a file
data = {"data":msg_list}
f_name = 'data.json'
with open(f_name, 'w') as fp:
#Save the dictionary
json.dump(data, fp, indent=4)
print('saved {}'.format(f_name))
data.json
будет выглядеть как
{
"data": [
{
"messages": [
{
"id": "AB-Iasd",
"body": "Up west accept third success bad.",
"reae": "0181541986524",
"ashe": "1490107025812",
"id2": "4087146706078",
"user_id": "5cda",
"pid": "Color wish method population affect."
},
{
"id": "AB-Iasd",
"body": "Human expect news son room recognize beautiful.",
"reae": "9417635708941",
"ashe": "0920108608482",
"id2": "8218562976929",
.....