gpt4 book ai didi

python - msgpack 解压每个项目之间的数字 '10'

转载 作者:行者123 更新时间:2023-12-01 03:37:48 26 4
gpt4 key购买 nike

我正在尝试使用 msgpack将字典列表写入文件。但是,当我迭代 Unpacker 的实例时,似乎数字 10 在每个“真实”文档之间解包。

我正在运行的测试脚本是

import msgpack
from faker import Faker
import logging
from logging.handlers import RotatingFileHandler

fake = Faker()
fake.seed(0)

data_file = "my_log.log"

logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
handler = RotatingFileHandler(data_file, maxBytes=2000, backupCount=10)
logger.addHandler(handler)

fake_dicts = [{'name': fake.name()} for _ in range(100)]

for item in fake_dicts:
dump_string = msgpack.packb(item)
logger.debug(dump_string)

unpacker = msgpack.Unpacker(open(data_file))

for unpacked in unpacker:
print unpacked

我用过的地方fake-factory生成虚假数据。打印输出结果如下:

{'name': 'Joshua Carter'}
10
{'name': 'David Williams'}
10
{'name': 'Joseph Jones'}
10
{'name': 'Gary Perry'}
10
{'name': 'Terry Wells'}
10
{'name': 'Vanessa Cooper'}
10
{'name': 'Michael Simmons'}
10
{'name': 'Nicholas Kline'}
10
{'name': 'Lori Bennett'}
10

我不明白为什么每个字典之间都打印数字10?这是由记录器以某种方式引入的吗?

最佳答案

这是来自解包器的内容。你可以像这样复制自己:

In [23]: unpacker = msgpack.Unpacker(open(data_file))

In [24]: unpacker.next()
Out[24]: {'name': 'Edward Ruiz'}

In [25]: unpacker.next()
Out[25]: 10

关于python - msgpack 解压每个项目之间的数字 '10',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40132832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com