我收到了一個 JSON 檔案,當用 Atom 打開時,該檔案如下所示:
["[{\"column1\":value1,\"column2\":value2,\"column3\":value3 ...
我嘗試使用 pandas read_json 在 Jupyter 中加載它:
data = pd.read_json('filename.json', orient = 'records')
當我列印時data.head(),它顯示以下結果:
結果截圖
我還嘗試了以下方法:
import json
with open('filename.json', 'r') as file:
data = json.load(file)
當我檢查時,type(data)我發現它是一個list. 當我檢查時data[0][1],它回傳給我,{即檔案中的字符似乎已作為串列中的單個元素加載?
只是想知道我是否遺漏了什么?我期望 JSON 檔案作為資料框加載,以便我可以分析里面的資料。感謝任何指導和建議。提前致謝!
uj5u.com熱心網友回復:
好的,所以我認為head()只顯示一個不需要外括號的條目。我會嘗試將您的檔案作為字串讀取并將字串更改為pd.read_json()可以決議的內容。我假設您的檔案包含如下形式的資料:
["[{\"column1\":2,\"column2\":\"value2\",\"column3\":4}, {\"column1\":4,\"column2\":\"value2\",\"column3\":8}]"]
現在,我將閱讀它并洗掉尾隨(\n如果它們存在)并更正該read()方法的自動轉義。然后我使用以下代碼從字串中洗掉["和:"]
with open('input.json', 'r') as file:
data = file.read().rstrip()
cleaned_string = data.replace('\\', '')[2:-2]
結果現在是一個有效的 json 字串,如下所示:
'[{"column1":2,"column2":"value2","column3":4}, {"column1":4,"column2":"value2","column3":8}]'
pandas 現在可以通過以下行輕松讀取此字串:
pd.read_json(cleaned_string, orient = 'records')
輸出:
column1 column2 column3
0 2 value2 4
1 4 value2 8
由于我不知道您的輸入,因此您的字串的細節(例如洗掉未使用字符的索引)可能會有所不同。但是,我認為這種方法可以讓您讀取資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/434728.html
上一篇:pandasgroupby并獲取所有空行,直到多列中的第一個非空值
下一篇:如何同時排序和標記重復的行
