【发布时间】:2017-10-16 00:54:32
【问题描述】:
我有一个文本文件,其中每一行都有类似字节数组的格式化字符串,例如: b'{"delete":{"status":{"id":554377123205378048,"id_str":"554377123205378048","user_id":981513812,"user_id_str":"981513812"},"timestamp_ms":"1508108338761"} }'
(这来自使用命令行(例如“python twitterstream.py > output.txt”)放入文本文件的流式 twitter 数据)
我现在正在尝试读取每一行并在其上使用 json.loads() 来获取该行应该是的字典。
如果我使用 line = open('output.txt').readline() 我会得到一个如下所示的字符串: 'b\'{"delete":{"status":{"id":554377123205378048,"id_str":"554377123205378048","user_id":981513812,"user_id_str":"981513812"},"timestamp_ms":"1508108338761 "}}\'\n'
请注意像“b\”这样添加的额外转义序列。 json.loads() 无法再解析这一行。如果我手动将内容复制到 python 控制台中,我可以让它解析原始行,这样行本身就可以了。我的文件 I/O 是怎么回事?
此外,当我手动将行复制到变量时,它被保存为 bytearray 类型(字节),所以我想问题是我如何让 python 在文件行中读取它们作为文字字节数组,因为它们被写入?
【问题讨论】:
标签: python json file-io readline twitter-streaming-api