有没有人知道会生成一个用随机数据填充的xml文件的应用程序?
我的应用有一个导入器,应该可以处理几乎所有xml文件的大小和结构,我想测试一下。
要清楚;不仅所有元素名称和值都需要是随机的,而且树结构本身也是如此。应该有随机数的子分支,每个分支都有更多的随机分支等等。
同样,是否有一个应用程序会为Json文件创建相同类型的随机数据?
答案 0 :(得分:2)
步骤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 ) )
例如,将在另一个标签内创建随机标签。
答案 1 :(得分:0)
对于XML文件,您可能需要考虑Stylus Studios的XML Generator。您必须提前定义XML结构,但数据将是随机的。它不是免费产品,但您可以下载试用版,看看它是否符合您的需求。
为了生成随机JSON,已在SO here上发布了一个好的建议。