python3-----json字段
原创json函数
使用json函数,您首先需要导入json模块,import json
JSON 指定的字符集为UTF-8,必须使用字符串。""双引号,Object密钥还必须使用双引号,而不是单引号;
JSON在数组或对象的格式中,不同的元素用逗号分隔,不能在最后一个元素后添加逗号。
python数据类型与json数据类型的映射关系
python
python
dict
object
list, tuple
array
str, unicode
string
int, long, float
number
True
true
False
false
None
null
json转换为python
Python中的list和tuple被改造json并且在解码之后,json的数组最终被转换Python的list的,是否最初list还是tuple。
json中常用的方法
方法
描述
json.dumps()
将 Python 对象已编码 JSON 字符串
json.loads()
编码的 JSON 字符串已解码 Python 对象
json.dump()
将Python内置类型已序列化。json在对象后写入文件
json.load()
读取文件json表单的字符串元素已转换。Python类型
JSON可以表示四种主要数据类型
- 字符串 string
- 数字 number
- 布尔类 boolean
- 空值 null
和双结数据结构
- 对象 object
-
数组 array
import json
json.dumps({1:a,2:b})#python的字典已转换json的对象 {"1": "a", "2": "b"}#1和2它们都用双引号括起来,因为json的名称
json.dumps([1,2,3])#python的列表已转换json的数组 [1, 2, 3] json.dumps((1,2,3,a))#python的发起人json的数组 [1, 2, 3, "a"]#请注意,此时将显示方括号。
json.dumps(abdcs)#python的字符串已转换。json的字符串 "abdcs" json.dumps(ua)#python的unicode字符串已转换json的字符串 "a"
json.dumps(13)#python已转换的整数。json的数字 13 json.dumps(3.1415)#python浮点数已转换json的数字 3.1415
json.dumps(True)#python的True转换为json的数组true true
json.dumps(False)#python的False转换为json的数组false false
json.dumps(None)#python的None转换为json的null null
json本质上是字符串
type(json.dumps([1,2,3,4]))
import json data=[1,2,3,4] data_json=(1,2,3,4) json.dumps(data) [1, 2, 3, 4] json.dumps(data_json) [1, 2, 3, 4] a=json.dumps(data) b=json.dumps(data_json) json.loads(a) [1, 2, 3, 4] json.loads(b) [1, 2, 3, 4] #元组和列表从数组中解析出来。 coding=utf-8
coding=utf-8
import json a = [{1:12, a:12.3}, [1,2,3], (1,2), asd,13, 3.3, True, False, None] b=json.dumps(a) c=json.loads(b) print(u"编码前 ", a) print(u"编码后 ", b) print(u"解码后 ", c) for i in range(len(c)): print(type(c[i]),end=)
运行后:
编码前
[{1: 12, a: 12.3}, [1, 2, 3], (1, 2), asd, 13, 3.3, True, False, None]
编码后
[{"1": 12, "a": 12.3}, [1, 2, 3], [1, 2], "asd", 13, 3.3, true, false, null]
解码后
[{1: 12, a: 12.3}, [1, 2, 3], [1, 2], asd, 13, 3.3, True, False, None]#解码后,字典中的键1变为引号,元组变为列表
import json
data = {
nanbei:haha,
a:[1,2,3,4],
b:(1,2,3)
}
with open(json_test.txt,w+) as f:
json.dump(data,f)#在当前文件夹中创建一个。json_test.txt,将json.dump(data)写入f
with open(json_test.txt,r+) as f:
print(json.load(f))
#运行之后{nanbei: haha, a: [1, 2, 3, 4], b: [1, 2, 3]}
对于JSON中数字number数据类型
-
JSON中的实数real number类型的精度不能超过Python中的float类型的精度范围, 否则,将失去精度。. 如下例:
json.loads(3.141592653589793238462643383279) 3.141592653589793
-
JSON本标准不包括非数字NaN, 正无穷Infinity和负无穷-Infinity
但是json.loads该方法默认为JSON在字符串中 NaN, Infinity, -Infinity 转化为Python中的 float(‘nan’), float(‘inf’)和float(’-inf’). 注意, 这里JSON中的NaN, Infinity, -Infinity大小写必须正确,拼写必须完整.json.loads({"inf": Infinity, "nan": NaN, "ninf": -Infinity}) {inf: inf, nan: nan, ninf: -inf}
bytes和bytearray数据
>>> json.loads({"a": 123}.encode(UTF-8))
{a: 123}
>>> json.loads(bytearray({"a": 123}, UTF-8))
{a: 123}
由于Python 3中str始终使用类型UTF-8编码, 所以s参数为str类型时, json.loads方法将自动使用。UTF-8编码. 并且, str不能以BOM字节开头.
当s参数为bytes或者bytearray时, json.loads方法自动确定UTF-8, UTF-16还是UTF-32编码. 默认情况下也会遵循它。UTF-8编码str用于后续处理的对象.
json.dumps()功能参数的使用
help(‘json.dumps’)
son.dumps = dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
help(‘json.dump’)
json.dump = dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
将“obj“已序列化JSON格式流“fp”(a .write() -支持类似文件的对象)。
函数作用: 将Python的对象JSON对象
- skipkeys: 如果为True如果是,它只能是字典对象,否则它将是TypeError错误, 默认False,shipkeys可以跳过那些非string对象的key加工,不是加工。
- ensure_ascii: 确定是否是ASCII编码,默认为True,表示用途ascii编码。如果已设置False,就会以Unicode编码。由于解码json返回字符串。Unicode字符串,所以您可以直接操作。Unicode字符,然后直接编码Unicode字符串,更简单
- check_circular: 循环类型检查,如果。True的话
- allow_nan: 确定是否是允许的值
- indent: 它将以美观的方式打印、呈现和缩进,indent的值表示缩进的位数。
- separators: 对象分隔符,删除逗号“,“和冒号”:“后面的空格。separators=(’,’,’:’)
- encoding: 编码方式,默认为utf-8
- sort_keys: 如果是字典对象,请选择True表示升序的单词将跟随键ASCII要排序的代码,是否按字典排序(a到z)输出,默认编码。json在格式化字符串之后,它是紧凑的输出,并且没有顺序,这不利于可读。
json.loads()
将json字符串python对象
>>> json.loads({"a":"b"})#在外部使用单引号
{a: b}
>>> json.loads({"2":1})
{2: 1}
>>> a=json.loads({"1":{"a":"b"}})
>>> a
{1: {a: b}} 版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123



