1. 程式人生 > >Python載入和解析包含多個JSON物件的JSON檔案

Python載入和解析包含多個JSON物件的JSON檔案

近期工作中,有一個爬蟲任務直接將文字內容存為了.json檔案,之後領導又給了個解析json檔案裡部分內容的需求,開始直接用with open開啟檔案用json.load讀取,然而因為一個檔案裡存在多個json物件,所以,失敗。網上相關操作資料貌似也並不多,在這裡記錄一下解決過程,方便各位碼友查閱。

找了很久終於找到了一個jsonlines的庫,然而要用這個庫,首先你的資料格式要符合它的規範,具體請跳轉http://jsonlines.org/,我主要記錄的問題也是在這兒,因為通過scrapy儲存的json檔案,裡面的每個json物件的後面都會加一個逗號(,),所以導致格式不對,讀取時直接報錯。

解決方式如下,思路就是把它的逗號去掉之後在讀取,廢話不說,直接上程式碼:


f = open('IAI.json', 'r', encoding='utf-8')
lines = f.read()
f.close()

lines_json = lines.replace('},', '}')

n = open('IAI_1.json', 'w', encoding='utf-8')
n.write(lines_json)
n.close()

之後再用jsonlines讀取內容即可:

with open("IAI_1.json", "r+", encoding="utf8") as f:
    for item in jsonlines.Reader(f):
        content = item['content']
        print(content)

至此就可以完美讀取出json檔案裡的多個json物件,思路很簡單,由於相關資料不多,在此只是為了記錄一下,方便各位查閱,不喜勿噴。