python3.x - python使用json.loads的时候,字符串里有一行数据有问题,怎样让它略过这一行
PHP中文网
PHP中文网 2017-04-17 17:29:48
0
1
561
import json
f_member = open(r'C:\Users\Desktop\xxxx.json')
users = json.loads(f_member.read(), encoding="utf8")

然后报错了
json.decoder.JSONDecodeError: Invalid control character at: line 388080 column 18 (char 4802144)

信息量很大,我不能手动去一条一条删这种吧...
如何略过这一行呢?

PHP中文网
PHP中文网

认证0级讲师

全部回覆(1)
大家讲道理

1) 嘗試用編解碼器的開放函數,讀取資料的時候可以指定讀出來的資料流編碼的方式

雷雷
  1. The default file mode is ’r’ meaning to open the file in read mode.
    注意:包裝版本僅接受編解碼器定義的物件格式,即大多數內建解碼器的 Unicode 物件。輸出也依賴編解碼器,通常也是 Unicode。
    注意:即使未指定二進位模式,檔案也始終以二進位模式開啟。這樣做是為了避免

  2. 由於使用 8 位元值進行編碼而導致的損失。這意味著在讀寫時不會自動轉換 'n'。

  3. 指定檔案使用的編碼。

  4. 可以用來定義錯誤處理。它預設為“strict”,如果發生編碼錯誤,則會引發 ValueError。

  5. 與內建的 open() 函數具有相同的意義。預設為行緩衝

    2)json.loads裡的資料逐個字的判斷,非utf-8編碼的跳過去,得到完整的字串後再loads

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板