• 技术文章 >常见问题 >Python常见问题

    python的json包在哪,怎么用

    silencementsilencement2019-09-16 10:16:19原创2268

    JSON是一种独立于语言的文本格式,用于数据交换,可以在不同语言间交换数据。

    在高级版本的Python里自带json模块包,使用import json直接导入模块。

    JSON文本以“键/值”对形式定义,Python里的json模块主要用于“Python数据与JSON格式的数据间相互转换”。

    JSON的数据类型:数字(整数或浮点数),字符串(“ ”),逻辑值(True/False),数组([ ]),对象({ }),null。

    json模块里常用的四个方法是dump,dumps,load,loads。详细的方法使用细节参考Python自带帮助文件help(json.dump)。

    Encode编码为json对象:

    json.dumps

    Pyhton的Json模块提供了把内存中的对象序列化的方法。

    dump的功能就是把Python对象encode为json对象,一个编码过程。 注意json模块提供了json.dumps和json.dump方法,区别是dump直接到文件,而dumps到一个字符串,这里的s可以理解为string。

    #dumps方法
     
    import json
    data = [{ 'a':'A', 'b':(2, 4), 'c':3.0 }]
    print('DATA:', repr(data), type(data)) 
     
    data_string = json.dumps(data)
    print('JSON:', data_string, type(data_string))

    json.dump

    不仅可以把Python对象编码为string,还可以写入文件。

    但是不能把Python对象直接写入文件,这样会报错TypeError: expected a string or other character buffer object,需要将其序列化之后才可以写入文件。

    #dump方法
    import json
    data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
     
    with open('output.json','w') as fp:
        json.dump(data,fp)

    Decode解码为Python对象:

    json.loads

    以上给出了Python内置对象dump为json对象的操作,反过来,那如何从json对象decode解码为Python可以识别的对象呢?

    用loads方法,当然这个是基于string的;如果是文件,可以用json.load方法。

    #loads方法
    decoded_json = json.loads(data_string)
    print(type(decoded_json),decoded_json)

    json.load

    #load方法
    with open('output.json') as fp:
        print(type(fp))
        
        loaded_json = json.load(fp)
        print(type(loaded_json),loaded_json)

    Python里open(‘文件路径’,‘读写模式’)内建函数,作用是打开文件。

    利用with代码块操作,便于管理上下文,当with代码块执行完时,内容会自动关闭并释放文件资源。

    专题推荐:json
    上一篇:为什么大多程序员黑php不黑python? 下一篇:python中的集合是什么

    相关文章推荐

    • python json是否存在• python的字典和json有什么区别

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网