首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >msgpack解压每个项目之间的数字'10‘

msgpack解压每个项目之间的数字'10‘
EN

Stack Overflow用户
提问于 2016-10-19 13:30:19
回答 1查看 64关注 0票数 1

我试图使用味精包将字典列表写到文件中。但是,当我迭代Unpacker的一个实例时,似乎每个“真实”文档之间都解压了数字10

我正在运行的测试脚本是

代码语言:javascript
复制
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

我用假厂来生成假数据。由此产生的印刷输出如下:

代码语言:javascript
复制
{'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?这是由logger提出的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-19 13:39:34

这是来自拆包者的内容。你可以这样复制自己:

代码语言:javascript
复制
In [23]: unpacker = msgpack.Unpacker(open(data_file))

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

In [25]: unpacker.next()
Out[25]: 10
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40132832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档