如何解决打印并写出生成器对象
试图将生成器对象合并到我的代码中,但有些无法正常工作。
def get_data():
data = some_api_call
result = data.json()
return result
结果如下所示,其中每个{}都位于换行符上:
{u'bytes_out': 1052.0,u'host': u'abc.com'}
{u'bytes_out': 52.0,u'host': u'def.com'}
{u'bytes_out': 5558.0,u'host': u'xya.com'}
...
def write_to_file(line):
#replacing the write statement with a print for testing
print(line)
def read_report(data):
for line in data:
yield line
def main():
alldata = get_data()
write_to_file(read_report(alldata))
我的期望是它应该打印出来:
{u'bytes_out': 1052.0,u'host': u'xya.com'}
但是我回来的是:
<generator object read_report at 0x7fca02462a00>
不确定我在这里缺少什么
***编辑-修复了我使用不正确的情况
def main():
all_data = get_data()
for line in read_report(all_data)
print(line)
解决方法
您也可以直接从生成器打印:
gen = range(1,10)
print(*gen,flush=True)
#out: 1 2 3 4 5 6 7 8 9
所以对于您的情况:
print(*read_report(all_data),flush=True)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。