python simplejsonモジュール浅谈


一、背景知識
  • JSON:百科を引用して、具体的には自分で検索して紹介してください。
  •     JSON(JavaScript Object Notation)は、軽量級のデータ交換フォーマットです。それはJavaScript(Standard ECMA-232 rd Edition-December 1999)のサブセットに基づいています。JSONは言語から完全に独立したテキスト形式を採用していますが、C言語家族のような習慣も使用しています。これらの特性はJSONを理想的なデータ交換言語にする。読みやすく、書きやすく、マシン解析や生成も容易です。
        表示方法:
  • データは名称/値ペア中
  • データはカンマ区切り
  • 括弧保存対象
  • 大かっこ保存配列
  •     例:
    {"programmers":[
    {"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},
    {"firstName":"Jason","lastName":"Hunter","email":"bbbb"},
    {"firstName":"Elliotte","lastName":"Harold","email":"cccc"}
    ],
    "authors":[
    {"firstName":"Isaac","lastName":"Asimov","genre":"sciencefiction"},
    {"firstName":"Tad","lastName":"Williams","genre":"fantasy"},
    {"firstName":"Frank","lastName":"Peretti","genre":"christianfiction"}
    ]}


    • HOWTO-UNICODE:

        unicode (code point), 16 00 00.

        PYTHON ,basestring unicode str

        unicode , (0-255),str 8 。

        unicode encode str;str decode unicode。 utf-8

         :

    >>> u"  ".encode('utf-8')
    '\xe4\xb8\xad\xe5\x9b\xbd'    # unicode      str
    >>> '\xe4\xb8\xad\xe5\x9b\xbd'.decode('utf-8')
    u'\u4e2d\u56fd'               # str   unicode   

        8 , unicode , ; unicode , 8 。

         unicode , 。


    • , 。 ,

    。 , ; 。

         , (JSON) ; , (JSON) , 。

         HOWTO-UNICODE , , , 。 , 。

        

    、simplejson

        simplejson json ( ), pypi , 。 python json , ( )。 python library JSON , , , 。 , , 。

         , , 。 , 。 , , **kwargs ;

    • simplejson.dump(obj, fp, **kwargs): python ( JSON )

    • simplejson.dumps(obj, **kwargs): python (JSON )

    • simplejson.load(fp, **kwargs): ( JSON ) python

    • simplejson.loads(s, **kwargs): ( JSON ) python

    • class simplejson.JSONDecoder:load/loads , JSON python

    • class simplejson.JSONEncoder:dump/dumps , python JSON

         , ,dump , , , unicode str , python JSON 。 ,load , , , str unicode , JSON python 。

         JSON Python :


    JSON Python 2 Python 3
    object dict dict
    array list list
    string unicode str
    number (int) int, long int
    number (real) float float
    true True True
    false False False
    null None None

         , :

    #coding:utf-8
    import simplejson as json
    
    #simplejson.dump(**kwargs)
    fp = open('./text.json', 'w+')
    json.dump([1,2], fp)         ## python       ,      
    fp.seek(0)
    print "----dump----
    ", u' dump python JSON , :
    ', fp.read() print  fp.close()          #simplejson.dumps(**kwargs) r_dumps = json.dumps({" obj":[1,2], "obj2":[3,4]})  # python , print "----dumps----
    ", u' dumps python JSON , :
    ', r_dumps print #simplejson.load(**kwargs) # json , JSONDecoderError fp = open('./text.json', 'r') r_load = json.load(fp)           # python print "----load----
    ", u" load JSON , python , :", type(r_load) print  #simplejson.loads(**kwargs) # json , JSONDecoderError # python r_loads = json.loads('''{"programmers":[ {"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}, {"firstName":"Jason","lastName":"Hunter","email":"bbbb"}, {"firstName":"Elliotte","lastName":"Harold","email":"cccc"} ], "authors":[ {"firstName":"Isaac","lastName":"Asimov","genre":"sciencefiction"}, {"firstName":"Tad","lastName":"Williams","genre":"fantasy"}, {"firstName":"Frank","lastName":"Peretti","genre":"christianfiction"} ]}''') print "----loads----
    ", u" loads JSON , python , :", type(r_loads) print

    ----dump----
      dump python           JSON      ,     :
    [1, 2]
    ----dumps----
      dumps python           JSON      ,      :
    {"obj2": [3, 4], "\u4e2d\u56fdobj": [1, 2]}
    ----load----
      load      JSON        ,    python  ,   : <type 'list'>
    ----loads----
      loads      JSON         ,    python  ,   : <type 'dict'>