insert errdocuments must have only string keys, key was b’files’或key was b’length’
这个错误是出在dht磁力转种子并将信息存入Mongodb存储中的,
data=ZDY6bGVuZ3RoaTY4MzM0MTQyNmU0Om5hbWU1MDpEQ3MuTGVnZW5kcy5vZi5Ub21vcnJvdy4zeDAyLnd3dy5EaXZ4VG90YUwuY29tLmF.......
res = bdecode(base64.b64decode(data.encode())) 解码
res=OrderedDict([(b'length', 358955470), (b'name', b'[ Torrent9.tv ] Marvels.Inhumans.S01E05.VOSTFR.HDTV.XViD-EXTREME.avi'), (b'piece length', 524288), (b'pieces',b'\xdfd\xb7k\xae\x0b\xd0t"\xe7\xe8\xde\x8f0\x8eA4E\x16l*\xae\xf1^{\xfc\xb0d2g\x06\x07\x01\xa8\xe1*\xf9\xf6\x05\xa2\x1a\xa1Tj\x15\xcbn(\x0f0\x17\x9a5d\x97\x9a\xf6\xd9| ......
res为解码后的信息为bytes
mess ={"file_data":res}
mess为存入的字典样式
async def insert(self,mess):
'''
插入数据
:return:
'''
try:
await self.collection.insert_one(mess) #插入一条数据
self.client.close()
因为插入文档的必须为字符串,而不是bytes形式,所以这里我们先解码存储,而是存储后,需要时在取出解码即存储data。