![](/img/trans.png)
[英]How to remove extraneous square brackets from a nested list inside a dictionary?
[英]How do I remove extraneous data from JSON file that is not in any dictionary? (HTTP logs)
我還是個新手,正在學習,所以請耐心等待。
好的 - 所以我有 HTTP 日志(~100k+ 記錄)。 我正在嘗試正確格式化它以供 JSON 加載函數使用。 我知道會接受:
[
{ "k1":"v1" }
{ "k2":"v2" }
{ "k3":"v3" }
]
我的數據當前不在列表中,但看起來像這樣:
2019-11-13T23:50:00Z httplog { "k1":"v1", "k2":"v2", "k3":"v3" }
2019-11-13T23:50:00Z httplog { "k4":"v4", "k5":"v5", "k6":"v6" }
.
.
.
等 10 萬條記錄。
在每行字典開始之前刪除額外信息的最佳方法是什么,以便我可以將它包裝在一個列表中,然后能夠將它傳遞給 JSON 加載?
謝謝! 如果我沒有提供足夠的信息,請告訴我。
這是你想要的嗎?
from io import StringIO
import json
log = StringIO("""\
2019-11-13T23:50:00Z httplog { "k1":"v1", "k2":"v2", "k3":"v3" }
2019-11-13T23:50:00Z httplog { "k4":"v4", "k5":"v5", "k6":"v6" }
""")
data = [json.loads(l.split('httplog')[-1].strip()) for l in log]
data
最終是:
[{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}, {'k4': 'v4', 'k5': 'v5', 'k6': 'v6'}]
或者,如果您不能可靠地拆分“httplog”上的行,但您知道您的數據在第一個“{”之后開始,您可以這樣做:
data = [json.loads(l[l.find('{'):].strip()) for l in log]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.