什么网站可以找到手工活做做cpa的博客网站类型
- 作者: 五速梦信息网
- 时间: 2026年04月20日 09:17
当前位置: 首页 > news >正文
什么网站可以找到手工活做,做cpa的博客网站类型,商城网站设计企业,做一下网站网站JSON (JavaScript Object Notation)#xff0c;由 RFC 7159 (它取代了 RFC 4627) 和 ECMA-404 指定#xff0c;是一个受 JavaScript 的对象字面值句法启发的轻量级数据交换格式。JSON独立于编程语言的文本格式来存储和表示数据#xff0c;现在大部分的数据传输基本使用的都是…JSON (JavaScript Object Notation)由 RFC 7159 (它取代了 RFC 4627) 和 ECMA-404 指定是一个受 JavaScript 的对象字面值句法启发的轻量级数据交换格式。JSON独立于编程语言的文本格式来存储和表示数据现在大部分的数据传输基本使用的都是json格式经常要从json里面拿到自己想要的数据也就是解析jsonpython提供了工具帮助我们解析json。
json简介
json就是一串表达数据的字符串字符串有一定的语法规则约束
json表达的数据是键值数据与python中的dict十分相识数据项之间使用逗号分割使用斜杆来转义\字符数据项的值支持整数、浮点数、字符串、逻辑值null等数据项的值支持数组数组数据使用中括号括起来多个数据项可以组合成一个对象对象数据使用大括号括起来。
{name: Kamishiro Rize,age: 22,occupation: firefighter,traits: [Eagle Eyed,Fast Healer,High Thirst,Hearty Appetite]
}
JSON 与 Python 的数据结构和对应关系如下
JSONPythonobjectdictarraylist,tuplestringstr,unicodenumber (int)int, longnumber (real)floattrueTruefalseFalsenullNone 解析json
json.loads(s, , clsNone, object_hookNone, parse_floatNone, parse_intNone, parse_constantNone, object_pairs_hookNone, **kw)
将字符串解析为python对象
参数说明
s一个包含 JSON 文档的 str, bytes 或 bytearray 对象cls解析器默认是JSONDecoder 也可以使用自定义的JSONDecoder子类作为解析器object_hook 是一个将附带任意已解码的对象字面值 (即 dict) 来调用的可选函。object_hook 的返回值会代替 dict 使用。 此特性可被用于实现自定义解码器 (例如 JSON-RPC 的类型提示)。object_pairs_hook 是一个可选的函数它会被调用于每一个有序列表对解码出的对象字面量。 object_pairs_hook 的返回值将会取代原本的 dict 。这一特性能够被用于实现自定义解码器。如果 object_hook 也被定义 object_pairs_hook 优先。parse_float 如果指定将与每个要解码 JSON 浮点数的字符串一同调用。默认状态下相当于 float(num_str) 。可以用于对 JSON 浮点数使用其它数据类型和语法分析程序 比如 decimal.Decimal 。parse_int 如果指定将与每个要解码 JSON 整数的字符串一同调用。默认状态下相当于 int(num_str) 。可以用于对 JSON 整数使用其它数据类型和语法分析程序 比如 float 。parse_constant 如果指定将要与以下字符串中的一个一同调用 -Infinity Infinity NaN 。如果遇到无效的 JSON 数字则可以使用它引发异常。
import jsonjsonstr { \name: Kamishiro Rize,\age: 22,\occupation: firefighter,\traits: [\Eagle Eyed,\Fast Healer,\High Thirst,\Hearty Appetite]
}# print(jsonstr)
jo json.loads(jsonstr)
print(type(jo))
print(jo)‘’
class dict
{name: Kamishiro Rize, age: 22, occupation: firefighter, traits: [Eagle Eyed, Fast Healer, High Thirst, Hearty Appetite]}
‘
上面的例子可以看出json字符串被解析为一个dict的对象。具体json是如何解析的是由JSONDecoder来实现的。
解码器JSONDecoder
class json.JSONDecoder(, object_hookNone, parse_floatNone, parse_intNone, parse_constantNone, strictTrue, object_pairs_hookNone)
解码器的参数和解析函数的参数大部分相同相同的部分含义也一致。
默认情况下解码执行以下翻译: JSON Python object – 对象 dict array list string str number (int) int number (real) float true True false False null None
它还将“NaN”、“Infinity”和“-Infinity”理解为它们对应的“float”值这超出了JSON规范。
主要的方法有
decode(s)
解析s如果给定的 JSON 文档无效则将引发 JSONDecodeError。
raw_decode(s)
从 s 中解码出 JSON 文档以 JSON 文档开头的一个 str 对象并返回一个 Python 表示形式为 2 元组以及指明该文档在 s 中结束位置的序号。 这可以用于从一个字符串解码JSON文档该字符串的末尾可能有无关的数据。
解析json文件
json.load(fp, , clsNone, object_hookNone, parse_floatNone, parse_intNone, parse_constantNone, object_pairs_hookNone, **kw)
对json文件fp进行解析fp对象要支持read()方法其他参数与loads完全一致。 生成json
json.dumps(obj, , skipkeysFalse, ensure_asciiTrue, check_circularTrue, allow_nanTrue, clsNone, indentNone, separatorsNone, defaultNone, sort_keysFalse, kw)
将一个python对象生成json的str对象。
参数说明
obj待生成json串的python对象skipkeys如果 skipkeys 是 true 默认为 False那么那些不是基本对象包括 str, int、float、bool、None的字典的键会被跳过否则引发一个 TypeError。ensure_ascii如果 ensure_ascii 是 true 即默认值输出保证将所有输入的非 ASCII 字符转义。如果 ensure_ascii 是 false这些字符会原样输出。check_circular如果 check_circular 为假值 (默认值: True)那么容器类型的循环引用检查会被跳过并且循环引用会引发 RecursionError (或者更糟的情况)。allow_nan如果 allow_nan 是 false默认为 True那么在对严格 JSON 规格范围外的 float 类型值nan、inf 和 -inf进行序列化时会引发一个 ValueError。如果 allow_nan 是 true则使用它们的 JavaScript 等价形式NaN、Infinity 和 -Infinity。cls默认使用编码器JSONEncoder也可以指定自己定义的JSONEncoder子类作为编码器进行个性化编码。indent如果 indent 是一个非负整数或者字符串那么 JSON 数组元素和对象成员会被美化输出为该值指定的缩进等级。 如果缩进等级为零、负数或者 则只会添加换行符。 None (默认值) 选择最紧凑的表达。 使用一个正整数会让每一层缩进同样数量的空格。 如果 indent 是一个字符串 (比如 \t)那个字符串会被用于缩进每一层。separators当被指定时separators 应当是一个 (item_separator, key_separator) 元组。当 indent 为 None 时默认值取 (, , : )否则取 (,, : )。为了得到最紧凑的 JSON 表达式你应该指定其为 (,, :) 以消除空白字符。default当 default 被指定时其应该是一个函数每当某个对象无法被序列化时它会被调用。它应该返回该对象的一个可以被 JSON 编码的版本或者引发一个 TypeError。如果没有被指定则会直接引发 TypeError。sort_keys如果 sort_keys 是 true默认为 False那么字典的输出会以键的顺序排序。
import json# python object(dictionary) to be dumped
dict1 {emp1:{name:Lisa,designation:programmer,age:34,salary:54000.01},emp2:{name:Elis,designation:Trainee,age:24,salary:40000.00},
}
jdict1 json.dumps(dict1)
print(jdict1)
jdict1 json.dumps(dict1, indent 6)
print(jdict1)‘’
{emp1: {name: Lisa, designation: programmer, age: 34, salary: 54000.01}, emp2: {name: Elis, designation: Trainee, age: 24, salary: 40000.0}}
{emp1: {name: Lisa,designation: programmer,age: 34,salary: 54000.01},emp2: {name: Elis,designation: Trainee,age: 24,salary: 40000.0}
}
‘
编码器JSONEncoder
class json.JSONEncoder(, skipkeysFalse, ensure_asciiTrue, check_circularTrue, allow_nanTrue, sort_keysFalse, indentNone, separatorsNone, defaultNone)
用于Python数据结构的可扩展JSON编码器。 默认支持以下对象和类型 Python JSON dict object – 对象 list, tuple array str string int, float, int 和 float 派生的枚举 数字 True true False false None null
除了上面这些类型JSONEncoder不支持自定义的类型需要自己写基于上面这个编码器的子类。
主要方法
default(o) 在子类中实现这种方法使其返回 o 的可序列化对象或者调用基础实现引发 TypeError 。
encode(o)
返回 Python o 数据结构的 JSON 字符串表达方式。
iterencode(o)
编码给定对象 o 并且让每个可用的字符串表达方式。
import jsonclass Base:def init(self, id, desc):self.id idself.desc descdef foo(self):print(fBase {self.id}, {self.desc})IDSTART 1100001class Teacher(Base):def init(self, name, course):self.name nameself.course courseclass Student(Base):def init(self, name, age):self.name nameself.age ageself.score {Chinese:90, Math:95, English:90}self.tearchers [Teacher(Chen, Chinese), Teacher(Wang, Math), Teacher(Su, English)]global IDSTARTIDSTART 1super().init(IDSTART, Student name)def foo(self):print(fStudent {self.name}, {self.age})class MyEncoder(json.JSONEncoder):def default(self, obj):if type(obj) not in (dict, list, tuple, str, int, float, True, False, None):return str(vars(obj))return json.JSONEncoder.default(self, obj)b Base(10011, Base Object)
b.foo()
jb json.dumps(b, clsMyEncoder)
print(jb)s Student(John, 12)
s.foo()
js json.dumps(s, clsMyEncoder)
print(js)’’’
Base self.id10011, self.descBase Object
{id: 10011, desc: Base Object}
Student self.nameJohn, self.age12
{name: John, age: 12, score: {Chinese: 90, Math: 95, English: 90}, tearchers: [main.Teacher object at 0x10fede450, main.Teacher object at 0x10fe05a50, main.Teacher object at 0x10fede510], id: 1100002, desc: Student John}
‘’‘
生成json文件
json.dump(obj, fp, , skipkeysFalse, ensure_asciiTrue, check_circularTrue, allow_nanTrue, clsNone, indentNone, separatorsNone, defaultNone, sort_keysFalse, kw)
将python对象以json格式写入文件fp支持write()方法
json 模块始终产生 str 对象而非 bytes 对象。因此fp.write() 必须支持 str 输入。
相关文章
-
什么网站可以快速做3d效果图建网站价格 优帮云
什么网站可以快速做3d效果图建网站价格 优帮云
- 技术栈
- 2026年04月20日
-
什么网站可以接单做设计企业商城网站开发
什么网站可以接单做设计企业商城网站开发
- 技术栈
- 2026年04月20日
-
什么网站对护肤品测评做的很好湖南省建设厅网站
什么网站对护肤品测评做的很好湖南省建设厅网站
- 技术栈
- 2026年04月20日
-
什么网站可以找人做软件下载网页设计基础教程第二版课后答案
什么网站可以找人做软件下载网页设计基础教程第二版课后答案
- 技术栈
- 2026年04月20日
-
什么网站可以自己做名片免费的html代码模板
什么网站可以自己做名片免费的html代码模板
- 技术栈
- 2026年04月20日
-
什么网站可以做2.5D场景seo推广seo技术培训
什么网站可以做2.5D场景seo推广seo技术培训
- 技术栈
- 2026年04月20日
