Как добавить цикл в этот код, который выводит случайный JSON и сохранить его в локальном? - PullRequest
0 голосов
/ 12 мая 2019

написал код, использующий библиотеку faker на python, которая генерирует случайные строки json. как добавить еще один цикл, чтобы идентификаторы зациклились на месте идентификаторов

import json 
from faker import Faker
import random
from random import randint

ids=(1,2,3,4,5,6)

print('{"data": [')
fake = Faker('en_US')
for _ in range(10):
    sms =  {
      "pid": "ABs-1cd",
      "body": fake.text(),
      "mime": fake.ean(),
      "hashed": fake.ean(),
      "celus": fake.ean(),
      "ids": "1", 
      "dev": "465p"
   }
    print(",")
    print(json.dumps(sms))

print('],"ids": "1"}') 

и сохраните json в соответствии с идентификатором пользователя, как в случае 1.json, 2.json, 3.json, 4.json

Ответы [ 2 ]

2 голосов
/ 12 мая 2019

Я думаю, это то, что вы ищете:

ids= (1, 2, 3, 4, 5, 6)

fake = Faker('en_US')

for ind in ids:
    cont = []
    for idx in range(10):
        sms =  {
            "pid": "ABs-1cd",
            "body": fake.text(),
            "mime": fake.ean(),
            "hashed": fake.ean(),
            "celus": fake.ean(),
            "ids": ind, 
            "dev": "465p"
        }
        cont.append(sms)

    f_name = '{}.json'.format(ind)
    with open(f_name, 'w') as fp:
        json.dump(cont, fp, indent=4)
        print('saved {}'.format(f_name))

Внешний цикл перебирает числа от 1 до 6, где каждая итерация внешнего цикла генерирует <id_number>.json. Внутренний цикл создает 10 словарей Python и сохраняет их в списке с именем cont, который очищается в начале внешнего цикла.

1 голос
/ 12 мая 2019

Для начала вместо двух операторов print вы можете добавить все словари в список, а затем создать общий словарь,

Также вы можете добавить еще один внешний цикл, который проходит по индексам и соответственно выбирает id

import json 
from faker import Faker
import random
from random import randint

ids=[1,2,3,4,5,6]

data = {}
li = []

fake = Faker('en_US')
for idx in range(400):
    #Loop through id in ids
    id = ids[int(idx%6)]
    sms =  {
      "pid": "ABs-1cd",
      "body": fake.text(),
      "mime": fake.ean(),
      "hashed": fake.ean(),
      "celus": fake.ean(),
      "ids": id,
      "dev": "465p"
   }
    li.append(sms)

data['data'] = li
print(data)

Выход будет

{'data': 
[{'pid': 'ABs-1cd', 'body': 'Between voice list option have. Grow yet smile citizen. After item play food lay.\nWoman same key. Join change choice market remain rise system.\nAlong that every piece. Smile face not.', 'mime': '1654036516104', 'hashed': '2183375261370', 'celus': '3745268243000', 'ids': 1, 'dev': '465p'}, 
{'pid': 'ABs-1cd', 'body': 'Politics no exist either discuss our draw. Crime mean loss there.', 'mime': '6907925600497', 'hashed': '4357683719153', 'celus': '6068299372691', 'ids': 2, 'dev': '465p'}, 
{'pid': 'ABs-1cd', 'body': 'Four cup charge. Cold wall fight himself direction coach case. Moment beyond produce prove black action.', 'mime': '0252898756297', 'hashed': '7548395540624', 'celus': '5079227810636', 'ids': 3, 'dev': '465p'}, {'pid': 'ABs-1cd', 'body': 'Area individual side eye amount artist. Side change former during pull skin. Half worker season after message travel town thousand.\nPublic end who. Summer enter key base.', 'mime': '9405000561321', 'hashed': '1072256350153', 'celus': '1521369156270', 'ids': 4, 'dev': '465p'}, {'pid': 'ABs-1cd', 'body': 'Film wide would pressure blue. Method guess while air deep. Response court make month however.', 'mime': '8541314383028', 'hashed': '3528769482198', 'celus': '2763098895122', 'ids': 5, 'dev': '465p'}, 
{'pid': 'ABs-1cd', 'body': 'Alone response detail operation. Less show crime maybe.\nLater popular agent stage number decide. Tv soldier nation member executive wrong close. Authority true popular gun student usually plant.', 'mime': '3013043458964', 'hashed': '5340459977450', 'celus': '7274348458516', 'ids': 6, 'dev': '465p'}, 
{'pid': 'ABs-1cd', 'body': 'Note PM value stand sure only test. During seem bring situation wife.\nBreak different difficult so. Leader include per catch. Attorney base card.', 'mime': '4625296268772', 'hashed': '3945698717878', 'celus': '8227765580925', 'ids': 1, 'dev': '465p'}, ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...