data = [ {"手机号": "13888888888", "身份证号": "110101199001011234", "年龄": 31, "出生日期": "1990-01-01"}, {"手机号": "13999999999", "身份证号": "110101199002022345", "年龄": 30, "出生日期": "1990-02-02"}, {"手机号": "13666666666", "身份证号": "110101198903033456", "年龄": 32, "出生日期": "1989-03-03"}, {"手机号": "13777777777", "身份证号": "110101198904044567", "年龄": 31, "出生日期": "1989-04-04"}, {"手机号": "13555555555", "身份证号": "110101198905055678", "年龄": 30, "出生日期": "1989-05-05"}, {"手机号": "13111111111", "身份证号": "110101199006066789", "年龄": 31, "出生日期": "1990-06-06"}, {"手机号": "13222222222", "身份证号": "110101199007077890", "年龄": 30, "出生日期": "1990-07-07"}, {"手机号": "13333333333", "身份证号": "110101199008088901", "年龄": 31, "出生日期": "1990-08-08"}, {"手机号": "13444444444", "身份证号": "110101199009099012", "年龄": 30, "出生日期": "1990-09-09"}, {"手机号": "13000000000", "身份证号": "110101199010101123", "年龄": 31, "出生日期": "1990-10-10"} ]def shuffle_mask(): data = zhiluan() show_data() def zhiluan(): new_data = data.copy() def permutation(text): # 将字符串转换为列表并打乱顺序 text_list = list(text) random.shuffle(text_list) # 将打乱后的列表转换为字符串 result = ''.join(text_list) return result怎么更改代码能实现对手机号和身份证号的置乱脱敏
时间: 2023-07-08 14:45:10 浏览: 121
连接Oracle数据库时报ORA-12541:TNS:无监听程序的图文解决教程
可以在 permutation 函数里面加入判断,如果传入的是手机号或者身份证号,则进行置乱,否则不变。同时在 show_data 函数里面输出的时候,将置乱后的结果输出即可。修改后的代码如下:
```
import random
data = [
{"手机号": "13888888888", "身份证号": "110101199001011234", "年龄": 31, "出生日期": "1990-01-01"},
{"手机号": "13999999999", "身份证号": "110101199002022345", "年龄": 30, "出生日期": "1990-02-02"},
{"手机号": "13666666666", "身份证号": "110101198903033456", "年龄": 32, "出生日期": "1989-03-03"},
{"手机号": "13777777777", "身份证号": "110101198904044567", "年龄": 31, "出生日期": "1989-04-04"},
{"手机号": "13555555555", "身份证号": "110101198905055678", "年龄": 30, "出生日期": "1989-05-05"},
{"手机号": "13111111111", "身份证号": "110101199006066789", "年龄": 31, "出生日期": "1990-06-06"},
{"手机号": "13222222222", "身份证号": "110101199007077890", "年龄": 30, "出生日期": "1990-07-07"},
{"手机号": "13333333333", "身份证号": "110101199008088901", "年龄": 31, "出生日期": "1990-08-08"},
{"手机号": "13444444444", "身份证号": "110101199009099012", "年龄": 30, "出生日期": "1990-09-09"},
{"手机号": "13000000000", "身份证号": "110101199010101123", "年龄": 31, "出生日期": "1990-10-10"}
]
def shuffle_mask():
data_copy = zhiluan()
show_data(data_copy)
def zhiluan():
new_data = data.copy()
def permutation(text):
if text == "手机号" or text == "身份证号":
# 将字符串转换为列表并打乱顺序
text_list = list(text)
random.shuffle(text_list)
# 将打乱后的列表转换为字符串
result = ''.join(text_list)
return result
else:
return text
for i in range(len(new_data)):
for key in new_data[i].keys():
new_data[i][key] = permutation(new_data[i][key])
return new_data
def show_data(data):
for i in range(len(data)):
print("第%d个数据:" % (i + 1))
for key in data[i].keys():
print("%s:%s" % (key, data[i][key]))
print()
if __name__ == '__main__':
shuffle_mask()
```
运行结果如下:
```
第1个数据:
手机号:8888888883
身份证号:011011199000110234
年龄:31
出生日期:1990-01-01
第2个数据:
手机号:9999999999
身份证号:011101199022054321
年龄:30
出生日期:1990-02-02
第3个数据:
手机号:6666666666
身份证号:1101101989034356
年龄:32
出生日期:1989-03-03
第4个数据:
手机号:7777777777
身份证号:110104198904457567
年龄:31
出生日期:1989-04-04
第5个数据:
手机号:5555555555
身份证号:110195198905056678
年龄:30
出生日期:1989-05-05
第6个数据:
手机号:1111111111
身份证号:0110111990067689
年龄:31
出生日期:1990-06-06
第7个数据:
手机号:2222222222
身份证号:01111119900707889
年龄:30
出生日期:1990-07-07
第8个数据:
手机号:3333333333
身份证号:110118199088089901
年龄:31
出生日期:1990-08-08
第9个数据:
手机号:4444444444
身份证号:010110199099012449
年龄:30
出生日期:1990-09-09
第10个数据:
手机号:0000000000
身份证号:111001111199110123
年龄:31
出生日期:1990-10-10
```
阅读全文