相对数据生成器:用相互依赖的数据生成表
fakeme的Python项目详细描述
假货
链式和相关数据的数据生成器
正在处理文档:https://fakeme.readthedocs.io/en/latest/
当前时间在发动机罩下使用:
- Mimesis (like one of the generators for fields values)
- Pandas (like main instrument to combain data in tables (frames)
- Standart Python Library
支持Python3.7
它不能做什么?在
这不是随机值生成的库-对于这个存在相当酷的lib模仿和另一个。在
为了什么
Fakeme面向依赖于其他表/数据集中的值的生成数据。 数据,那是真实的。在
Fakeme可以帮助您生成多个表,这些表必须包含in columns值, 您将使用like key作为join。在
例如,user_data表包含字段user\uid,而users表包含具有列id的用户列表。 你想在user_id=id上加入它
Fakeme将为您生成两个表,在这两个列中具有相同的值。在
具有相同名称的列并不重要—您可以定义具有别名的表之间的依赖关系。在
你能做什么
- 定义数据集中的字段必须包含相似的值
2。您可以设置多少值必须相交,例如,您希望模拟电子邮件验证管道的数据- 您有一个包含incoming消息的数据集,您需要查找之前未添加到contacts表中的所有电子邮件。在
因此,您将有incoming messages表,其中包含,例如,只有70%的电子邮件存在于contacts表中。在
3。您可以将多个列用作另一列中的键(依赖项),例如, player\u final_report必须为每个player包含与其他表中相同的值,例如,您有player表 有了玩家的详细信息和in_game_player_activity,所有玩家的活动都出于某些测试原因,这是至关重要的 以生成player_final_report,其中1对1来自其他2个表。在
- 联合表。可以生成包含其他表中所有行的表。在
- 您可以在Python上为字段定义自己的生成器。在
- 您可以定义自己的输出格式
示例
You can find usage examples in ‘fakeme/examples/’ folder.
Example from fakeme/examples/generate_data_related_to_existed_files:
fromfakemeimportFakeme# to use some existed data you should provide with_data argument -# and put inside list with the paths to the file with data# data file must be in same format as .json or csv output of fakeme.# so it must be [{"column_name": value, "column_name2": value2 ..},# {"column_name" : value, "column_name2": value2 ..}..]# Please check example in countries.jsoncities_schema=[{"name":"name"},{"name":"country_id"},{"name":"id"}]# all fields are strings - so I don't define type, because String will be used as default type for the columntables_list=[('cities',cities_schema)]Fakeme(tables=tables_list,with_data=['countries.json'],rls={'cities':{# this mean: for table 'cities''country_id':{# and column 'country_id' in table 'cities''table':'countries.json',# please take data from data in countries.json'alias':'id',# with alias name 'id''matches':1# and I want all values in country_id must be from countries.id column, all.}}},settings={'row_numbers':1300}# we want to have several cities for each country,# so we need to have more rows,).run()# run and you will see a list of cities, that generated with same ids as in countries.json
- 项目
标签: