深圳网站建设小江宁夏交通建设有限公司网站
深圳网站建设小江,宁夏交通建设有限公司网站,全网营销公司排名前十,网站单页面可以做302跳转吗文章目录 文章开篇Json简介Json数据类型Json硬性规则Json数据转化网站Json和Dict类型转换json模块的使用Python数据和Json数据的类型映射json.dumps1.字典数据中含有**存在中文**2.json数据通过缩进符**美观输出**3.对Python数据类型中键进行**排序输出**4.json数据**分隔符的控… 文章目录 文章开篇Json简介Json数据类型Json硬性规则Json数据转化网站Json和Dict类型转换json模块的使用Python数据和Json数据的类型映射json.dumps1.字典数据中含有**存在中文**2.json数据通过缩进符**美观输出**3.对Python数据类型中键进行**排序输出**4.json数据**分隔符的控制** json.dumpjson.loadsjson.loadJson和非Dict类型数据转换1.元祖转换2.列表转换3.布尔值转换4.数值转换 案例应用1.JSON数据的合并与去重2.JSON数据的动态查询与过滤 总结 文章开篇 Python的魅力犹如星河璀璨无尽无边人生苦短、我用Python Json简介 JSONJavaScript Object Notation数据是一种轻量级的数据交换格式 JSON数据使用键值对的方式来组织数据其中键是字符串值是字符串、数字、布尔值、数组、对象或null 由于JSON数据格式简单且易于解析它已成为现代应用程序中常用的数据格式之一特别是在Web应用程序和移动应用程序中进行数据交换时JSON数据被广泛使用。 Json数据类型 在JSONJavaScript Object Notation语言中存在六种基本数据类型 字符串String由零个或多个字符组成的有序字符序列用于表示文本信息数字Number可以是整数或浮点数用于表示数值信息布尔值Boolean只有两个取值true 或 false用于表示逻辑状态数组Array有序的值的集合每个值可以是一个数据类型或另一个数组用于表示列表或集合对象Object无序的键值对集合其中每个键都是一个字符串每个值可以是任意数据类型用于表示复杂的数据结构null表示空值或不存在的值 这些数据类型可以单独使用也可以组合起来创建更复杂的数据结构 例如一个对象可以包含多个键值对其中值可以是字符串、数字、布尔值、数组或另一个对象 同样数组可以包含任意数量的元素每个元素都可以是任意数据类型 这种灵活性和组合性使得JSON成为一种强大且通用的数据交换格式 Json硬性规则 在JSON语言中字符集的使用被严格限定为UTF-8。这是因为UTF-8编码能够支持全球范围内的字符集确保了JSON数据的跨语言、跨平台兼容性为了确保JSON数据的解析一致性和准确性JSON标准规定字符串的界定符必须是双引号“”。这意味着在JSON中所有的字符串都必须用双引号括起来而不能使用单引号或其他字符 Json数据转化网站 **json.cn**https://www.json.cn/**kjson**https://www.kjson.com/**json菜鸟工具**https://c.runoob.com/front-end/53**sojson**https://www.sojson.com/ 非常全的json处理网站**编程狮-json检验工具**https://www.w3cschool.cn/tools/index?namejsoncheck**JSONViewer**http://jsonviewer.stack.hu/ 用于检测Json格式是否正确的一个在线应用工具 Json和Dict类型转换 处理JSON文件时由于文件内容被视为单一字符串不能直接使用其内部数据 想要访问其键值对需将其转换为Python字典这样就可以程序中读取和修改 Json数据是以字符串表示Json转Dict叫反序列化Dict是内存中的实际数据结构对象Dict转Json叫序列化 Python的内置json模块是转换JSON与Python字典的便捷工具提供高效方法处理JSON数据 深入学习该模块可参考官方文档https://docs.python.org/3/library/json.html。 json模块的使用 json模块是Python的内置模块无需额外下载安装使用时直接导入即可 import json json模块中存在四种方法用来进行Python内置数据类型的转换 方法说明Json.dumps()将python对象编码成json字符串dict转jsonjson.loads()将json字符串解码成python对象json转dictjson.dump()将python中的对象转化成json存储到文件json.load()将文件中的json格式转换成python对象提取出来 Python数据和Json数据的类型映射 dumps和dump函数的作用是将Python数据类型转成json类型数据 转化对照表如下
Python数据类型Json数据类型dictobjectlist、tuplearraystrunicodestringint、floatnumberTruetrueFalsefalseNonenull loads和load函数的作用是将json类型数据转换成Python数据类型 转化对照表如下
Json数据类型Python数据类型objectdictarrayliststringstrnumberint、floattrueTruefalseFalsenullNone json.dumps 作用将Python字典类型的数据转成json格式的数据 json.dumps(...)参数释义如下
import jsonjson.dumps(obj, # 待转化的对象skipkeysFalse, # 默认值是False若dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None)设置为False时就会报TypeError的错误。此时设置成True则会跳过这类keyensure_asciiTrue, # 默认是ASCII码若设置成False则可以输出中文check_circularTrue,# 若为False跳过对容器类型的循环引用检查allow_nanTrue, # 若allow_nan为假则ValueError将序列化超出范围的浮点值(nan、inf、-inf)严格遵守JSON规范而不是使用JavaScript等价值(nan、Infinity、-Infinity)clsNone,indentNone, # 参数根据格式缩进显示表示缩进几个空格separatorsNone, # 指定分隔符包含不同dict项之间的分隔符和key与value之间的分隔符同时去掉: encodingutf-8, # 编码defaultNone, # 默认是一个函数应该返回可序列化的obj版本或者引发类型错误默认值是只引发类型错误sort_keysFalse, # 若为False则字典的键不排序设置成True按照字典排序a到z**kw)通过示例来解释上面几个常见参数的作用 1.字典数据中含有存在中文 import jsondict_data {name: 张三,age: 18,sex: 男,address: 上海,phone: 10086
}
# 字典转成json数据
json_data json.dumps(dict_data)print(type(dict_data), dict_data) # class dict {name: 张三, age: 18, sex: 男, address: 上海, phone: 10086}
print(type(json_data), json_data) # class str {name: \u5f20\u4e09, age: 18, sex: \u7537, address: \u4e0a\u6d77, phone: 10086}# 加上ensure_asciiFalse参数即可将中文解码
json_data json.dumps(dict_data, ensure_asciiFalse)
print(type(json_data), json_data) # class str {name: 张三, age: 18, sex: 男, address: 上海, phone: 10086}2.json数据通过缩进符美观输出
import jsondict_data {name: 张三,age: 18,sex: 男,address: 上海,phone: 10086
}
# 字典转成json数据
json_data json.dumps(dict_data)
print(type(dict_data), dict_data) # class dict {name: 张三, age: 18, sex: 男, address: 上海, phone: 10086}
print(type(json_data), json_data) # class str {name: \u5f20\u4e09, age: 18, sex: \u7537, address: \u4e0a\u6d77, phone: 10086}# 对json数据通过缩进符美观输出使用indent参数
json_data json.dumps(dict_data, ensure_asciiFalse, indent4)
print(type(json_data), json_data)
# class str {
# name: 张三,
# age: 18,
# sex: 男,
# address: 上海,
# phone: 10086
# }3.对Python数据类型中键进行排序输出
import jsondict_data {name: 张三,age: 18,sex: 男,address: 上海,phone: 10086
}
# 字典转成json数据
json_data json.dumps(dict_data)
print(type(dict_data), dict_data) # class dict {name: 张三, age: 18, sex: 男, address: 上海, phone: 10086}
print(type(json_data), json_data) # class str {name: \u5f20\u4e09, age: 18, sex: \u7537, address: \u4e0a\u6d77, phone: 10086}# 对Python数据类型中键进行排序输出
json_data json.dumps(dict_data, ensure_asciiFalse, indent4, sort_keysTrue)
print(type(json_data), json_data)
# class str {
# address: 上海,
# age: 18,
# name: 张三,
# phone: 10086,
# sex: 男
# }4.json数据分隔符的控制
import jsondict_data {name: 张三,age: 18,sex: 男,address: 上海,phone: 10086
}
# 字典转成json数据
json_data json.dumps(dict_data)
print(type(dict_data), dict_data) # class dict {name: 张三, age: 18, sex: 男, address: 上海, phone: 10086}
print(type(json_data), json_data) # class str {name: \u5f20\u4e09, age: 18, sex: \u7537, address: \u4e0a\u6d77, phone: 10086}# 对json数据通过缩进符美观输出使用indent参数
json_data json.dumps(dict_data, ensure_asciiFalse)
print(type(json_data), json_data) # class str {name: 张三, age: 18, sex: 男, address: 上海, phone: 10086}json_data json.dumps(dict_data, ensure_asciiFalse, separators( , ))
print(type(json_data), json_data) # class str {name 张三 age 18 sex 男 address 上海 phone 10086} json.dump json.dump函数将Json格式的数据写入文件中json.dumps函数将Python字典类型的数据转成json格式的数据 import jsondict_data {name: 张三,age: 18,sex: 男,address: 上海,phone: 10086
}# 使用json.dumpjson数据一定是双引号
with open(filetest_json.json, modew, encodingutf-8) as file:# 全部写入一行数据不换行json.dump(dict_data, # 待写入数据file, # File对象sort_keysTrue, # 键的排序ensure_asciiFalse) # 显示中文# test_json.json文件内容如下
# {address: 上海, age: 18, name: 张三, phone: 10086, sex: 男}with open(filetest_json.json, modew, encodingutf-8) as file:# 全部写入一行数据不换行json.dump(dict_data, # 待写入数据file, # File对象indent4, # 设置缩进sort_keysTrue, # 键的排序ensure_asciiFalse) # 显示中文# test_json.json文件内容如下
# {
# address: 上海,
# age: 18,
# name: 张三,
# phone: 10086,
# sex: 男
# }json.loads 作用将json格式的数据转换成python字典类型的数据 import json# json字符串在python中是以字符串形式保存的只是它的内部是按照json的规则构建
json_data {address: 上海, age: 18, name: 张三, phone: 10086, sex: 男}
print(type(json_data), json_data) # class str {address: 上海, age: 18, name: 张三, phone: 10086, sex: 男}dict_data json.loads(json_data)
print(type(dict_data), dict_data) # class dict {address: 上海, age: 18, name: 张三, phone: 10086, sex: 男}json.load 作用打开json文件将之读取后转换成字典形式的数据 json.load函数打开json文件将之转成字典形式的数据json.loads函数将json格式的数据转换成python字典类型的数据 import jsonwith open(filetest_json.json, moder, encodingutf-8) as file:json_to_dict json.load(file) # json转成字典print(type(json_to_dict), json_to_dict) # class dict {address: 上海, age: 18, name: 张三, phone: 10086, sex: 男} Json和非Dict类型数据转换 1.元祖转换
import json# 定义一个元祖类型的数据
tuple_data (1, 2, 3, 4, 5)# 将元祖类型的数据转换成json格式
json_data json.dumps(tuple_data)print(type(json_data), json_data) # class str [1, 2, 3, 4, 5] 2.列表转换
import json# 定义一个列表类型的数据
list_data [1, 2, 3, 4, 5]# 将列表类型的数据转换成json格式
json_data json.dumps(list_data)print(type(json_data), json_data) # class str [1, 2, 3, 4, 5]3.布尔值转换
import json# 定义一个布尔类型的数据
bool_data True# 将布尔类型的数据转换成json格式
json_data json.dumps(bool_data)print(type(json_data), json_data) # class str true4.数值转换
import json# 定义一个数值类型的数据
bool_data 10086# 将数值类型的数据转换成json格式
json_data json.dumps(bool_data)print(type(json_data), json_data) # class str 10086案例应用 1.JSON数据的合并与去重 假设有多个JSON文件每个文件包含一组用户数据并且希望将这些数据合并到一个文件中同时去除重复的用户 import json# 定义一个函数来合并和去重JSON数据
def merge_and_deduplicate_json(file_list, output_file):users []seen_users set()for file_path in file_list:with open(file_path, r) as file:data json.load(file)for user in data:user_id user.get(id)if user_id not in seen_users:users.append(user)seen_users.add(user_id)# 将合并后的数据写入输出文件with open(output_file, w) as file:json.dump(users, file, indent4)# 使用示例
merge_and_deduplicate_json([users1.json, users2.json, users3.json], merged_users.json)2.JSON数据的动态查询与过滤 如果有一个大型的JSON数据集并且需要根据特定的条件来查询和过滤数据可以使用Python的json模块结合其他数据处理功能 import json# 读取JSON文件
with open(large_dataset.json, r) as file:data json.load(file)# 定义一个函数来查询和过滤数据
def query_and_filter_data(data, query_conditions):filtered_data []for item in data:if all(condition(item) for condition in query_conditions):filtered_data.append(item)return filtered_data# 定义查询条件
def is_age_over_25(item):return item[age] 25def has_email(item):return email in item and item[email]# 查询和过滤数据
filtered_users query_and_filter_data(data, [is_age_over_25, has_email])# 输出结果
for user in filtered_users:print(user)总结 Python的json模块是一个非常方便的库用于处理json格式的数据 json数据是工作中经常会遇到的一种数据格式也是很重要的一种数据 本文首先对json数据及格式进行了简介重新认识json数据 其次结合各种实际案例将json和Python的各种数据类型尤其是字典类型进行了转化 最后重要讲解了json数据的读取、写入和规范化的操作。 json序列化方法 dumps无文件操作 dump序列化 写入文件json反序列化方法 loads无文件操作 load读文件 反序列化格式化写入文件使用indent参数 4将中文解码使用ensure_ascii参数 False
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88455.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!