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

使用pykeepass给KeePass添加TXT附件时遇类型错误,如何处理?

解决pykeepass添加附件时的TypeError错误

你遇到的错误是因为pykeepass 4.1.0.post1版本存在参数传递bug,将附件内容(bytes类型)错误传入了需要字符串的E.Key()方法;或是Python 3.13与该版本库的兼容性问题。以下是几种解决方案:

1. 升级pykeepass到最新版本

旧版本的bug在后续版本中已修复,执行以下命令升级:

pip install --upgrade pykeepass

升级后无需修改原代码,直接运行即可。

2. 手动构造附件元素

如果无法升级,可绕过add_attachment方法,手动创建附件节点:

from pykeepass import PyKeePass
from lxml.builder import ElementMaker
import base64

E = ElementMaker(namespace='http://keepass.info/XML/1.0', nsmap={'': 'http://keepass.info/XML/1.0'})

kp = PyKeePass('testDatabase.kdbx', password='passwort')

generalGroup = kp.find_groups(name='General', first=True)
entry = kp.add_entry(
    generalGroup,  
    title='title',  
    username='username',
    password='password',
)

with open('loremipsum.txt', 'rb') as f:
    att_data = f.read()
    # 构建附件XML元素
    attachment = E.Attachment(
        E.Key('attachment.txt'),
        E.Value(base64.b64encode(att_data).decode('utf-8'))
    )
    entry.attachments.append(attachment)

kp.save()

3. 降级Python版本

若为Python 3.13兼容性问题,可尝试降级至Python 3.12版本,再运行原代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:49:55