Last active
December 27, 2019 10:27
-
-
Save ansh0l/468f39c4e4aa36736f3f64382c3f841a to your computer and use it in GitHub Desktop.
Random Json Generator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import datetime | |
import json | |
import random | |
import string | |
class date(str): | |
pass | |
def key_generator(wt_int=10, wt_str=10, wt_dict=0, wt_list=0, wt_float=10, wt_date=3, wt_none=1): | |
return element_generator(wt_int, wt_str, wt_dict, wt_list, wt_float, wt_date, wt_none) | |
def element_generator(wt_int=10, wt_str=10, wt_dict=5, wt_list=3, wt_float=9, wt_date=3, wt_none=1): | |
possible_value = random.choice([int]*wt_int + [str]*wt_str + [dict]*wt_dict + [list]*wt_list + [float]*wt_float + [date]*wt_date + [None]*wt_none) | |
return { | |
int: random_int, | |
str: random_string, | |
dict: random_dict, | |
list: random_list, | |
date: random_date, | |
float: random_float, | |
None: lambda: None | |
}[possible_value]() | |
def random_string(maximum_alphabet_multiplier=5, minimum_length=10, maximum_length=150): | |
characters = list((string.ascii_letters + """ ,.'"`-*&%_ """ + string.digits)*random.randint(1, maximum_alphabet_multiplier)) | |
random.shuffle(characters) | |
return ''.join(x for x in characters[:random.randint(minimum_length, maximum_length)]) | |
def random_date(seconds_range=1000000000): | |
return str(datetime.datetime.now() | |
- datetime.timedelta(seconds=random.randint(1,seconds_range)) | |
+ datetime.timedelta(seconds=random.randint(1,seconds_range))) | |
def random_float(float_range=1000000000): | |
return random.random()*random.randint(1, float_range) | |
def random_int(int_range=1000000000): | |
return random.randint(1,int_range) | |
def random_list(minimum_elements=10, maximum_elements=100, nested=True): | |
return [element_generator() for _ in range(random.randint(0, minimum_elements))] if nested \ | |
else [element_generator() for _ in range(random.randint(minimum_elements, maximum_elements))] | |
def random_dict(minimum_elements=10, maximum_elements=100, nested=True): | |
return {key_generator(): element_generator() for _ in range(random.randint(0, minimum_elements))} if nested \ | |
else {key_generator(): element_generator() for _ in range(random.randint(minimum_elements, maximum_elements))} | |
def random_data(minimum_elements=50): | |
return [element_generator() for _ in range(minimum_elements)] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment