Шаг 1. Определите шаблон для повторяющихся элементов в XML.
t= string.Template("""<sometag><data>${data}</data><moredata>${moredata}</moredata></sometag>""")
Шаг 2. Генерировать случайные значения.
import random
args = dict(
data = random.random(),
moredata= random.random()
)
Шаг 3. Вставьте случайные значения в шаблон.
t.substitute(**args)
Вы можете без особых усилий легко генерировать много случайных XML. Хотите вместо имен вместо имен?
def random_name(size=8):
return "".join(random.choice(string.ascii_letters) for x in range(size))
Хотите названия переменной длины?
def random_variable_len_name(mean_size= 8, std_size= 2):
size= int(random.gauss(mean_size, std_size))
return random_name(size)
Возможности бесконечны и действительно просты в реализации.
Случайный JSON еще проще.
import json
import random
args = dict(
data = random.random(),
moredata= random.random()
)
json.dumps([args])
Если "случайные" путает вас, рассмотреть этот вопрос.
t1 = string.Template("""<sometag>${body}</sometag>""")
t2 = string.Template("""<othertag attr="$attr">$data</othertag>""")
t3 = string.Template("""<moretag attr="$attr">$data</moretag>""")
elements = random.randint(0,4)
body= [ random.choice([t2,t3]).substitute(attr=random.random(), data= random_name()) for x in range(elements) ]
t1.substitute(body="".join(body))
Это, например, создаст случайные теги в другом теге.
Это не только значения, которые должны быть случайными, но и древовидной структурой. (Элементы со случайными числами дочерних элементов и каждый ребенок со случайным числом дочерних элементов и т. Д.) –
@sprocketonline: легко создавать шаблоны для различных фрагментов XML и комбинировать их в случайных порядках или со случайными элементами, присутствующими или не присутствующими , –