又报错__init__() got multiple values for argument 'alphabet'
时间: 2023-12-06 12:04:29 浏览: 98
这个错误是因为你在创建 pyffx.Integer 对象时,同时指定了 alphabet 和 ffx 参数,但是 alphabet 参数只能有一个值。你可以将 alphabet 参数删掉,这样 pyffx.Integer 会使用默认的数字字符集。
以下是修改后的代码示例:
```
import pyffx
# 定义 FPE 使用的密钥和算法
key = b'secretkey'
ffx = pyffx.Integer(length=4, ffx=pyffx.Integer, key=key)
# 脱敏手机号的函数
def encrypt_phone_number(phone_number):
# 将手机号中间四位转换为整数类型,然后进行加密
encrypted = ffx.encrypt(int(phone_number[3:7]))
# 将加密后的结果转换为字符串并插入到原手机号的中间四位
return phone_number[:3] + str(encrypted) + phone_number[7:]
# 测试脱敏函数
phone_number = '13812345678'
encrypted_phone_number = encrypt_phone_number(phone_number)
print('原手机号:', phone_number)
print('脱敏后手机号:', encrypted_phone_number)
```
希望这次能够帮到你!
相关问题
python 报错__init__() got multiple values for argument 'schema'
这个错误通常是因为在调用一个函数时,给了一个参数多次,导致参数重复。例如:
```
def foo(name, age, gender):
print(name, age, gender)
foo(name='Alice', age=25, gender='female', schema='test')
```
在这个例子中,`foo()` 函数只有三个参数,但是我们在调用时给了一个额外的参数 `schema`,这就导致了报错。为了解决这个问题,我们需要检查一下我们调用函数时的参数是否有误。
使用Python导入数据到mysql时报错__init__ got multiple values for argument schema
这个错误通常是因为在使用Python导入数据到MySQL的时候,给了重复的参数值。可能是在创建连接对象时,或者是在执行SQL语句时。请检查下面的代码,看看是否有类似的问题:
```python
import mysql.connector
# 创建连接对象
cnx = mysql.connector.connect(user='username', password='password',
host='localhost', database='mydatabase')
# 创建游标对象
cursor = cnx.cursor()
# 执行SQL语句
schema = 'mydatabase'
table_name = 'mytable'
sql = f"INSERT INTO `{schema}`.`{table_name}` (`col1`, `col2`, `col3`) VALUES (%s, %s, %s)"
val = ('value1', 'value2', 'value3')
cursor.execute(sql, val, schema=schema) # 这一行可能会报错
# 提交事务
cnx.commit()
# 关闭游标和连接对象
cursor.close()
cnx.close()
```
在上面的代码中,可能会报错的是执行SQL语句的这一行:
```python
cursor.execute(sql, val, schema=schema)
```
因为这里给了两个schema参数,所以会报错。修改这行代码,只保留一个schema参数即可:
```python
cursor.execute(sql, val)
```
这样就不会再报错了。希望能帮到你。
阅读全文