簡體   English   中英

從文件讀取字節數組格式的字符串到python

[英]reading bytearray formatted strings from a file into python

我有一個文本文件,該文件的每一行都有字節數組,如格式化的字符串,例如:b'{“ delete”:{“ status”:{“ id”:554377123205378048,“ id_str”:“ 554377123205378048”,“ user_id”:981513812, “ user_id_str”:“ 981513812”},“ timestamp_ms”:“ 1508108338761”}}'

(這來自使用命令行將諸如文本“ python twitterstream.py> output.txt”之類的推特數據流式傳輸到文本文件中)

我現在嘗試讀取其中的每一行,並在其上使用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混亂了怎么辦?

另外,當我手動將行復制到變量時,它會另存為字節數組類型(字節),所以我想問題是如何讓python在寫入文件行時將它們讀取為文本字節數組?

>>> ast.literal_eval("""b'{"delete":{"status":{"id":554377123205378048,"id_str":"554377123205378048","user_id":981513812,"user_id_str":"981513812"},"timestamp_ms":"1508108338761"}}'""")
b'{"delete":{"status":{"id":554377123205378048,"id_str":"554377123205378048","user_id":981513812,"user_id_str":"981513812"},"timestamp_ms":"1508108338761"}}'
>>> json.loads(ast.literal_eval("""b'{"delete":{"status":{"id":554377123205378048,"id_str":"554377123205378048","user_id":981513812,"user_id_str":"981513812"},"timestamp_ms":"1508108338761"}}'""").decode('utf-8'))
{'delete': {'status': {'user_id_str': '981513812', 'id_str': '554377123205378048', 'id': 554377123205378048, 'user_id': 981513812}, 'timestamp_ms': '1508108338761'}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM