仿照下列JSON格式数据,在Linux系统中,创建并保存名为employee.json的文件。要求随机生成数据量为10000+条,其中数据重复率1%-2.5%。 { "id":1 , "name":" Ella" , "age":36 } { "id":2, "name":"Bob","age":29 } { "id":3 , "name":"Jack","age":29 } { "id":4 , "name":"Jim","age":28 } { "id":4 , "name":"Jim","age":28 } { "id":5 , "name":"Damon" } { "id":5 , "name":"Damon" }
时间: 2025-05-31 07:50:43 浏览: 16
### 创建包含10,000条以上随机生成员工数据的JSON文件
要在Linux系统中生成一个名为`employee.json`的文件,其中包含超过10,000条随机生成的员工数据,并确保数据重复率在1%-2.5%之间,可以通过以下方式实现:
#### 方法概述
为了达到目标,可以编写一个Python脚本来生成所需的JSON文件。该脚本会利用Python的标准库来生成随机数据,并控制数据的重复率。以下是具体实现过程。
---
#### Python代码示例
```python
import json
import random
def generate_employee_data(num_records=10000, duplicate_rate=0.015):
"""
生成指定数量的员工数据,并引入一定比例的重复记录。
参数:
num_records (int): 总记录数,默认为10000。
duplicate_rate (float): 数据重复率,默认为1.5%,范围应在1%-2.5%之间。
返回:
list: 包含员工数据的列表。
"""
unique_records = int(num_records * (1 - duplicate_rate)) # 计算唯一记录的数量
duplicates_count = num_records - unique_records # 计算重复记录的数量
employees = []
first_names = ["John", "Jane", "Alice", "Bob", "Charlie"]
last_names = ["Smith", "Doe", "Johnson", "Williams", "Brown"]
departments = ["HR", "Engineering", "Marketing", "Sales", "Finance"]
# 生成唯一的员工数据
for _ in range(unique_records):
employee = {
"id": f"E{random.randint(1000, 9999)}",
"name": f"{random.choice(first_names)} {random.choice(last_names)}",
"department": random.choice(departments),
"salary": round(random.uniform(30000, 150000), 2)
}
employees.append(employee)
# 添加重复项
duplicated_employees = random.sample(employees, k=duplicates_count)
employees.extend(duplicated_employees)
# 打乱顺序以模拟自然分布
random.shuffle(employees)
return employees
if __name__ == "__main__":
data = generate_employee_data(num_records=10000, duplicate_rate=random.uniform(0.01, 0.025))
with open("employee.json", "w") as file:
json.dump(data, file, indent=4)
```
---
#### 实现细节说明
1. **参数设置**
使用`num_records`变量表示总记录数,`duplicate_rate`变量表示期望的重复率。默认情况下,重复率为1.5%,但允许其在1%-2.5%范围内变化[^4]。
2. **数据生成逻辑**
- `unique_records`: 根据重复率计算出需要生成的独特记录数。
- `duplicates_count`: 剩下的部分即为重复记录的数量。
- 利用嵌套字典结构存储每名员工的信息,包括ID、姓名、部门和薪资等字段。
3. **重复数据注入**
通过`random.sample()`函数从已有的独特记录中随机选取若干条作为重复项,并将其追加到原始列表中。
4. **数据打乱**
使用`random.shuffle()`方法对最终的数据列表进行重排,从而避免重复项集中于某一段位置。
5. **保存至文件**
将生成的结果序列化为JSON格式并写入名为`employee.json`的文件中。
---
#### 如何运行此脚本?
将上述代码保存为`.py`文件(例如`generate_employee.py`),然后在Linux终端执行如下命令即可生成所需文件:
```bash
python3 generate_employee.py
```
完成后会在当前目录下找到`employee.json`文件。
---
#### 验证数据重复率
可通过以下Python片段验证实际的重复率是否符合预期:
```python
with open('employee.json', 'r') as file:
data = json.load(file)
total_records = len(data)
unique_ids = set([record['id'] for record in data])
repeated_records = total_records - len(unique_ids)
repeat_rate = repeated_records / total_records * 100
print(f"Total Records: {total_records}")
print(f"Unique IDs: {len(unique_ids)}")
print(f"Repeated Records: {repeated_records}")
print(f"Repeat Rate (%): {round(repeat_rate, 2)}")
```
---
###
阅读全文
相关推荐
















