Code Monkey home page Code Monkey logo

json_pickle's Introduction

json_pickle

writer json,重要!!!* 如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如xml, 但更好的方法是序列化为json,应为json表示出来就是一个字符串,就可以被所有语言读取, 也方便存储到磁盘或者通过网络传输。json不仅是标准格式,而且比xml更快,可以直接在web页面中读取,非常方便 json:可以用于任何语言之间的数据传递,但不能传递函数、类 pickle:几乎所有的数据类型都可以传递,包括函数、类等。但是只限于python语言之间 import json dic={'name':'alex'} i=8 s='hello' l=[11,22,33,'asz',[1,2,'3']] data=json.dumps(dic) print(type(data)) #<class 'str'> print(data) #{"name": "alex"}

data=json.dumps(i) print(type(data)) #<class 'str'> print(data) #8

data=json.dumps(s) print(type(data)) #<class 'str'> print(data) #"hello"

data=json.dumps(l) print(type(data)) #<class 'str'> print(data) #[11, 22, 33, "asz", [1, 2, "3"]]

序列化 把对象(变量)从内存中编程可存储或可传输的过程就叫序列化,在python中叫pickling。 反过来,将变量内容从序列化的对象重新写入到内存中叫反序列化,unpickling

json.dumps(value) 将value(普通的数据类型)转化为json字符串(序列化过程)。value中的元素如果有单引号,全部转化为双引号。 双引号保持不变,结果的类型全部都是json字符串。 value——json.dumps()——>json字符串,进行到存到文件或者传输等其他操作

json.loads(value1) 将value1(json字符串)转化为普通的数据类型(dumps之前的数据,即value) value1——json.loads()——>普通的数据类型,进行其他操作

import json dic={"name":'alex'} f=open("json","w",encoding="utf-8") a=json.dumps(dic) f.write(a) f.close()

dumps和dump之间的等价** a=json.dumps(dic) f.write(a) 等价于a=json.dump(dic,f),dump只能用于文件操作,推荐使用前者

loads和load之间的等价** b=f.read() B=json.loads(b) 等价于B=json.load(f),load只能用于文件操作,推荐使用前者

dic={"name":'alex'} f=open("json1","w+",encoding="utf-8") a=json.dumps(dic) f.write(a) b=f.read() B=json.loads(b) #这一步会报错,why? print(B) f.close()

import json f=open("json","r",encoding="utf-8") b=f.read() B=json.loads(b) print(type(B)) #<class 'dict'> print(B) #{'name': 'alex'} print(f.closed) f.close() print(f.closed)

只要符合json字符串的字符串都可以用load方法* import json f=open("json_test","r",encoding="utf-8") c=f.read() C=json.loads(c) print(C) f.close()

文件中:{"name":'lili'} 结果会报错 文件中:{"name":"lili"} 正确结果

@@@@@@@@@@@@@@@@@@@@@@@@pickle模块@@@@@@@@@@@@@@@@@@@@@@@@@@@@ pickle模块:在使用上,pickle和json完全一样,只是序列化后不一样 import pickle dic={"name":"alex"} f=open("pickle","wb") a=pickle.dumps(dic) #———>序列化后是bytes类型 print(type(a)) #<class 'bytes'> f.write(a) #文件打开后内容是乱的。。。。。,也就是文件没有可读性 print(f.readable()) #False f.close()

@@@@@@@@@@@@@@@@@@@@@@@@shelve模块@@@@@@@@@@@@@@@@@@@@@@@@@@@@ shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写; key必须为字符串,而值可以是python所支持的数据类型 shelve模块:和json,pickle模块类似,作传输使用,不能跨语言用,不常用 import shelve f=shelve.open(r'shelve1') #目的:把字典放入到文件中去 f['aa']={"name":"alex","age":19} f["bb"]={"name":"alvin","age":190} f.close()

按照字典的格式取存的就按照字典的格式去取 import shelve f=shelve.open(r'shelve1') print(f.get("aa")["age"]) #19 print(f.get("bb")["name"]) #alvin

其实shelve内部封装了pickle!!!

json_pickle's People

Contributors

lang101 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.