Python更快的解析JSON大檔案

2021-09-16 21:14:18 字數 3713 閱讀 3362

今天用python的******json庫解析乙個 >200mb 的json檔案,發現一次decode/encode都得要 >10s,這個在我開來,實在太慢了,有沒有更快的庫了?

直譯器******json

json

ujson

pypy

40s多

10s無

cpython

12s多

17s多

10s多

根據下面的benchmark,在double陣列的情況下,yajl的encode速度是比ultrajson的,所以,如果你的json檔案較小的話,其實無所謂哪個庫,如果是像我這樣的大json檔案,可以根據下面的表選擇合適的json庫。

下面是作者給出的benchmark:**中的數字是每秒的呼叫次數,也就是說,數字越大,表示效率越高。

versions:

ujson

yajl

******json

json

array with 256 doubles

encode

3508.19

5742.00

3232.38

3309.09

decode

25103.37

11257.83

11696.26

11871.04

array with 256 utf-8 strings

encode

3189.71

2717.14

2006.38

2961.72

decode

1354.94

630.54

356.35

344.05

array with 256 strings

encode

18127.47

12537.39

12541.23

20001.00

decode

23264.70

12788.85

25427.88

9352.36

medium complex object

encode

10519.38

5021.29

3686.86

4643.47

decode

9676.53

5326.79

8515.77

3017.30

array with 256 true values

encode

105998.03

102067.28

44758.51

60424.80

decode

163869.96

78341.57

110859.36

115013.90

array with 256 dict pairs

encode

13471.32

12109.09

3876.40

8833.92

decode

16890.63

8946.07

12218.55

3350.72

dict with 256 arrays with 256 dict pairs

encode

50.25

46.45

13.82

29.28

decode

33.27

22.10

27.91

10.43

dict with 256 arrays with 256 dict pairs, outputting sorted keys

encode

27.19

7.75

2.39

complex object

encode

577.98

387.81

470.02

decode

496.73

234.44

151.00

145.16

versions:

ujson

yajl

******json

json

array with 256 doubles

encode

3477.15

5732.24

3016.76

3071.99

decode

23625.20

9731.45

9501.57

9901.92

array with 256 utf-8 strings

encode

1995.89

2151.61

1771.98

1817.20

decode

1425.04

625.38

327.14

305.95

array with 256 strings

encode

25461.75

12188.64

13054.76

14429.81

decode

21981.31

17014.22

23869.48

22483.58

medium complex object

encode

10821.46

4837.04

3114.04

4254.46

decode

7887.77

5126.67

4934.60

6204.97

array with 256 true values

encode

100452.86

94639.42

46657.63

60358.63

decode

148312.69

75485.90

88434.91

116395.51

array with 256 dict pairs

encode

11698.13

8886.96

3043.69

6302.35

decode

10686.40

7061.77

5646.80

7702.29

dict with 256 arrays with 256 dict pairs

encode

44.26

34.43

10.40

21.97

decode

28.46

23.95

18.70

22.83

dict with 256 arrays with 256 dict pairs, outputting sorted keys

encode

33.60

6.94

22.34

complex object

encode

432.30

351.47

379.34

decode

434.40

221.97

149.57

147.79

Python更快的解析JSON大檔案

提出問題 今天用python的 json庫解析乙個 200mb 的json檔案,發現一次decode encode都得要 10s,這個在我開來,實在太慢了,有沒有更快的庫了?先給出我的簡單測試結果 json大小 245mb 測試方法 read檔案內容,然後一次decode,一次encode 直譯器 ...

python中的json解析

主要實現以下功能 解析 與構造json,即encoder and decoder 官方指導 中文教程 前者將obj轉化為json str,後者將str轉化為python物件,如果json字串是個object,轉化為dict,若是array則轉化為list json寫法 表示array的json字串 ...

python 解析多層json

原始檔案內容 channels 3 height 1080 width 1920 修改並儲存 coding utf 8 import os import json 獲取目標資料夾的路徑 filedir r j numberdata mrcnnhik test 獲取資料夾中的檔名稱列表 filenam...