我無法將嵌套的 JSON 檔案正確讀取到資料框中。這是我正在研究的藥品的 json 檔案示例:
[
[
{
"ScrapingOriginIdentifier": "N",
"ActiveSubstances": [
"A.C.T.H. pour préparations homéopathiques"
],
"ATC": null,
"Name": "A.C.T.H. BOIRON, degré de dilution compris entre 4CH et 30CH ou entre 8DH et 60DH",
"OtherFields": [
{
"Name": null,
"Value": "CIS: 6 499 638 6",
"Type": "string"
},
{
"Name": null,
"Value": "MA Holder since: 06/10/2021",
"Type": "string"
}
],
"Package": "1 tube de 4 g de granules",
"PharmaceuticalForm": "Granules",
},
{
"ScrapingOriginIdentifier": "N",
"ActiveSubstances": [
"A.C.T.H. pour préparations homéopathiques"
],
"ATC": null,
"Name": "A.C.T.H. BOIRON, degré de dilution compris entre 4CH et 30CH ou entre 8DH et 60DH",
"OtherFields": [
{
"Name": null,
"Value": "CIS: 6 499 638 6",
"Type": "string"
},
{
"Name": null,
"Value": "MA Holder since: 06/10/2021",
"Type": "string"
}
],
"Package": "1 tube de 20 g de pommade",
"PharmaceuticalForm": "Granules",
}
],
[
{
"ScrapingOriginIdentifier": "34009 341 687 6 5",
"ActiveSubstances": [],
"ATC": null,
"Name": "17 B ESTRADIOL BESINS-ISCOVESCO 0,06 POUR CENT, gel pour application cutanée en tube",
"OtherFields": [
{
"Name": null,
"Value": "CIS: 6 858 620 3",
"Type": "string"
},
{
"Name": null,
"Value": "Codes: 34009 341 687 6 5 or 341 687-6",
"Type": "string"
}
],
"Package": "1 tube(s) aluminium verni de 80 g avec applicateur polystyrène",
"PharmaceuticalForm": "Gel",
}
]
]
我可以看到問題是它嵌套在ScrapingOriginIdentifier. 我使用以下方法讀取檔案:
dataset = pd.read_json('data.json', orient='records')
并嘗試使用以下方法正確“塑造”它:
dataset = pd.json_normalize(dataset)
這仍然沒有奏效。如何正確讀取檔案以獲取所有內容?
uj5u.com熱心網友回復:
起初,它包含未參考的值null,它應該是"null"。然后,您的 json 結構不適合創建資料框。結構如下:
[
[
{ "ScrapingOriginIdentifier": "...", ...},
{ "ScrapingOriginIdentifier": "...", ...},
],
[
{ "ScrapingOriginIdentifier": "...", ...},
]
]
雖然它應該這樣構造:
[
[
{ "ScrapingOriginIdentifier": "...", ...},
],
[
{ "ScrapingOriginIdentifier": "...", ...},
],
[
{ "ScrapingOriginIdentifier": "...", ...},
]
]
請考慮以這種方式重組您的串列:
json = your_json
new_list = []
for list in json:
for item in list:
new_list.append(item)
df = pd.DataFrame.from_dict(new_list)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/494879.html
上一篇:ValueError:Usea.empty,a.bool(),a.item(),a.any()ora.all()&AttributeError:'bool'objecthasnoa
