json檔案內容如下:
{
"createtime" : ISODate("2020-06-24T06:29:33.473Z"),
"updatetime" : ISODate("2020-07-09T02:23:04.553Z")
}
{
"createtime" : ISODate("2020-06-24T06:38:15.86Z"),
"updatetime" : ISODate("2020-07-09T02:35:42.092Z")
}
{
"createtime" : ISODate("2020-06-24T07:00:33.919Z"),
"updatetime" : ISODate("2020-08-14T07:01:36.704Z")
}
代碼:
with open("西部.json",encoding="utf-8") as f:
json_file = json.load(f,cls=MyEncoder)
print(json_file)
各位大佬能否幫忙指點迷津啊
uj5u.com熱心網友回復:
檔案內容格式不是json createtime: 后面必須在一個雙引號內uj5u.com熱心網友回復:
json檔案里含有超多json物件,想知道怎么處理
uj5u.com熱心網友回復:
json資料其實就是字典資料,字典資料是一個健對應一個值,叫鍵值對。健和值的資料型別可以不一樣,但健或值只能是一個型別。你的ISODate("2020-06-24T07:00:33.919Z")明顯是字串型別,所以必須要用引號說明這是一個字串,因為你的資料里有雙引號,為了避免解釋器識別錯誤,可以使用單引號。你的json檔案可以改成:{
"createtime" : 'ISODate("2020-06-24T06:29:33.473Z")',
"updatetime" : 'ISODate("2020-07-09T02:23:04.553Z")'
}
uj5u.com熱心網友回復:
{
"createtime" : ISODate("2020-06-24T06:29:33.473Z"),
"updatetime" : ISODate("2020-07-09T02:23:04.553Z")
}
{
"createtime" : ISODate("2020-06-24T06:38:15.86Z"),
"updatetime" : ISODate("2020-07-09T02:35:42.092Z")
}
{
"createtime" : ISODate("2020-06-24T07:00:33.919Z"),
"updatetime" : ISODate("2020-08-14T07:01:36.704Z")
}
你這個json資料=json格式的字串,不合法 = 不符合JSON的語法
具體有3點
1. 最外層缺少中括號[]
2.每個dict字典之間缺少逗號,
3.每個dict字典內部有多余的ISODate-》需要改為字串本身
改為:
[
{
"createtime": "2020-06-24T06:29:33.473Z",
"updatetime": "2020-07-09T02:23:04.553Z"
},
{
"createtime": "2020-06-24T06:38:15.86Z",
"updatetime": "2020-07-09T02:35:42.092Z"
},
{
"createtime": "2020-06-24T07:00:33.919Z",
"updatetime": "2020-08-14T07:01:36.704Z"
}
]
才是(其中一種處理方式處理后的)合法的json字串。
-》才能被正確決議
關于JSON,可以參考我(多年前寫)的教程:
JSON詳解
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/10181.html
上一篇:python通過api 讀取代理
下一篇:go怎樣實作反向socks5?
