You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于数据属性生成假数据的Python库及hypothesis使用问询

问题解答

1. 存在可实现该功能的Python库

有几个库能精准匹配你的需求,核心是基于指定类型结构生成符合要求的假数据:

  • factory_boy:可通过定义工厂类映射你的数据结构,用嵌套工厂生成复杂对象,严格保留键和结构,同时生成对应类型的假数据。
  • pydantic-factories:如果你的数据结构能通过Pydantic模型定义,该库可直接基于模型生成假数据,完美匹配类型与结构要求。
  • Faker(配合自定义逻辑):Faker本身擅长生成语义化假数据,你可以封装遍历逻辑,针对结构字典里的每个类型调用Faker对应方法生成数据,同时保留原结构的键和列表长度。

2. 可以使用hypothesis库生成假数据

hypothesis虽主打属性测试,但它的策略系统完全能用来生成符合要求的假数据。你可以基于类型结构定义对应策略,或用hypothesis.strategies.from_type配合自定义逻辑实现:

示例代码:

from hypothesis import strategies as st

# 匹配目标类型结构的策略
data_strategy = st.fixed_dictionaries({
    'name': st.text(),
    'job': st.lists(
        st.fixed_dictionaries({
            'title': st.text(),
            'location': st.text()
        }),
        min_size=1, max_size=1  # 固定列表长度为1
    ),
    'age': st.integers()
})

# 生成假数据
fake_dict = data_strategy.example()
print(fake_dict)

这段代码会生成符合要求的结构:保留所有键、列表长度固定、字段类型匹配,数据为随机生成。若你的结构更复杂,可通过递归遍历类型结构动态生成对应策略,无需手动逐个定义。


内容的提问来源于stack exchange,提问作者Mike Williamson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 10:17:09