python json 数据库,python json数据处理

  python json 数据库,python json数据处理

  本文为您带来了一些关于python的知识,包括json标准库的相关问题,包括json的基本概述、JSON模块、XML文件和JSON文件的相互转换等。来看看吧,希望对你有帮助。

  推荐:python视频教程

  00-1010

一、JSON基础概述

JSON(全称:JavaScript Object Notation Object re presentation)是一种轻量级的文本数据交换格式。JSON的数据格式实际上是python中的字典格式,可以包含用方括号括起来的数组,也就是python中的列表。

  JSON是独立于语言的,JSON是自描述的,更容易理解。JSON比XML更小、更快、更容易解析。爬虫经常会获取接口数据,接口数据是JSON格式

1、JSON是什么?

语法格式: { key 1: value 1,key23360value2,}键-值对(用冒号分隔),用逗号连接。

  简单案例: JSON对象

  {

  姓名 : 小明:

  年龄 3360 18 }复杂案例: JSON阵列

  {

  学生:

  [

  { 姓名 : 小明,年龄 : 11},

  { 姓名 : 小红,年龄 : 10}

  ],

  classroom 3360 { class 1 : room 1 , class2 3360 room2}

2、JSON长什么样?

1,json的键-值对的键部分必须用双引号括起来,不允许使用单引号(所以如果关键字出现在key中,也是被表征的),而在js中

  2.函数function、undefined、NaN不允许出现在json键-值对的值部分,但可以为null,它可以出现在js中对象的值中。

  3.json数据做完之后,不允许使用无意义的逗号,比如:{name : admin , age 336018,}。注意数据结尾部分18后面的逗号,这是不允许的。

  

3、注意事项

正确的json格式如下:

  # Format 1: JSON对象{name: admin , age

  quot;: 18}# 格式2:JSON 数组{

   "student":

   [

   {"name": "小明", "age": 18},

   {"name": "小红", "age": 16},

   {"name": "小黑", "age": 20}

   ]}错误的json格式如下

  

二、json 模块

1、作用

1、使用jsON字符串生成python对象(load)

  2、由python对象格式化成为ison字符串(dump)

  

2、数据类型转换

将数据从Python转换到json格式,在数据类型上会有变化,如下表所示:

  PythonJSONdictobjectlist, tuplearraystrstringint, float, int- & float-derived EnumsnumberTruetrueFalsefalseNonenull反过来,将json格式转化为python内置类型,如下表所示:

  JSONPythonobjectdictarrayliststringstrnumber(int)intnumber(real)floattrueTruefalseFalsenullNone

3、使用方法

json模块的使用其实很简单,对于绝大多数场合下,我们只需要使用下面四个方法就可以了:

  方法功能json.dumps(obj)将python数据类型转换为json格式的字符串。json.dump(obj, fp)将python数据类型转换并保存到son格式的文件内。json.loads(s)将json格式的字符串转换为python的类型。json.load(fp)从json格式的文件中读取数据并转换为python的类型。

4、 json.dumps()

将python数据类型转换为json格式的字符串。

  

语法格式json.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)

  

>>> import json

  # Python字典

  >>> person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True}

  >>> print(person)

  {'name': '小明', 'age': 30, 'tel': ['888888', '1351111111'], 'isonly': True}

  >>> type(person)

  <class 'dict'

  # Python字典转换为json字符串

  >>> jsonStr = json.dumps(person)

  >>> print(jsonStr )

  {"name": "u5c0fu660e", "age": 30, "tel": ["888888", "1351111111"], "isonly": true}

  >>> type(jsonStr)

  <class 'str'>

从上可以看出json格式和Python格式的区别在于python格式打印输出是单引号,类型为dict而json格式打印输出是双引号,类型为:strTrue开头大小写区别。

  使用参数能让JSON字串格式化输出:

  

>>> print(json.dumps(person, sort_keys=True, indent=4, separators=(',', ': '))){

   "age": 30,

   "isonly": true,

   "name": "u5c0fu660e",

   "tel": [

   "888888",

   "1351111111"

   ]}

参数解读

  

  • sort_keys:是否排序
  • indent:定义缩进距离
  • separators:是一个元组,定义分隔符的类型
  • skipkeys:是否允许JSON字串编码字典对象时,字典的key不是字符串类型(默认是不允许)
修改分割符类型

  

>>> print(json.dumps(person, sort_keys=True, indent=4, separators=('!', '-'))){

   "age"-30! "isonly"-true! "name"-"u5c0fu660e"! "tel"-[

   "888888"! "1351111111"

   ]

文件操作

  

import json

  person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True}jsonStr = json.dumps(person)with open('test.json', 'w', encoding='utf-8') as f: # 打开文件

   f.write(jsonStr) # 在文件里写入转成的json串

查看生成的新文件:

  

5、json.dump()

将python数据类型转换并保存到son格式的文件内。

  

语法格式json.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)

  

import json

  person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True}json.dump(person, open('data.json', 'w'))

查看生成的新文件:

使用参数能让JSON字串格式化输出:

  

import json

  person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True}json.dump(person, open('data.json', 'w'), sort_keys=True, indent=4, separators=(',', ': '))

再次查看文件:

json.dumpsjson.dump写入文件的区别

  

  • dump() 不需要使用.write()方法,只需要写那个字典,那个文件即可;而 dumps() 需要使用.write()方法写入。
  • 如果把字典写到文件里面的时候,dump()好用;但是如果不需要操作文件,或需要把内容存储到数据库何excel,则需要使用dumps()先把字典转换成字符串,再写入

6、json.loads()

将json格式的字符串转换为python的类型。

  

语法格式json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

  

>>> import json# Python字典>>> person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True}>>> print(person){'name': '小明', 'age': 30, 'tel': ['888888', '1351111111'], 'isonly': True}>>> type(person)<class 'dict'# Python字典转换为json字符串>>> jsonStr = json.dumps(person) >>> print(jsonStr ){"name": "u5c0fu660e", "age": 30, "tel": ["888888", "1351111111"], "isonly": true}>>> type(jsonStr)<class 'str'># json字符串再转换为Python字典>>> python_obj = json.loads(jsonStr)>>> print(python_obj){'name': '小明', 'age': 30, 'tel': ['888888', '1351111111'], 'isonly': True}>>> print(type(python_obj))<class 'dict'># 打印字典的所有key>>> print(python_obj.keys()) dict_keys(['name', 'age', 'tel', 'isonly'])

   # 打印字典的所有values>>> print(python_obj.values()) dict_values(['小明', 30, ['888888', '1351111111'], True])

文件操作:

  

import json

  f = open('data.json', encoding='utf-8')content = f.read()

  # 使用loads()方法需要先读文件

  python_obj = json.loads(content)print(python_obj)

输出结果:

  

7、json.load()

从json格式的文件中读取数据并转换为python的类型。

  

语法格式json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

  文件操作

  

import json

  python_obj = json.load(open('data.json','r'))print(python_obj)print(type(python_obj))

输出结果:

  json.load()json.loads()区别:

  

  • loads() 传的是json字符串,而 load() 传的是文件对象

      

  • 使用 loads() 时需要先读取文件在使用,而 load() 则不用

      

8、总结

不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的

  

三、XML文件和JSON文件互转

记录工作中常用的一个小技巧

  

cmd控制台安装第三方模块

  

pip install xmltodict

1、XML文件转为JSON文件

新建一个1.xml文件:

  

<note date="23/04/2022">

   <to>tom</to>

   <from>mary</from>

   <msg>love</msg></note>

  转换代码实现

  

import jsonimport xmltodictdef xml_to_json(xml_str):

   """parse是的xml解析器,参数需要

   :param xml_str: xml字符串

   :return: json字符串

   """

   xml_parse = xmltodict.parse(xml_str)

   # json库dumps()是将dict转化成json格式,loads()是将json转化成dict格式。

   # dumps()方法的ident=1,格式化json

   json_str = json.dumps(xml_parse, indent=1)

   return json_str

  XML_PATH = './1.xml' # xml文件的路径with open(XML_PATH, 'r') as f:

   xmlfile = f.read()

   with open(XML_PATH[:-3] + 'json', 'w') as newfile:

   newfile.write(xml_to_json(xmlfile))

输出结果(生成json文件):

  

2、JSON文件转换为XML文件

新建test.json文件:

  

{

   "student": {

   "course": {

   "name": "math",

   "score": "90"

   },

   "info": {

   "sex": "male",

   "name": "name"

   },

   "stid": "10213"

   }}

  转换代码实现:

  

import xmltodictimport jsondef json_to_xml(python_dict):

   """xmltodict库的unparse()json转xml

   :param python_dict: python的字典对象

   :return: xml字符串

   """

   xml_str = xmltodict.unparse(python_dict)

   return xml_str

  JSON_PATH = './test.json' # json文件的路径with open(JSON_PATH, 'r') as f:

   jsonfile = f.read()

   python_dict = json.loads(jsonfile) # 将json字符串转换为python字典对象

   with open(JSON_PATH[:-4] + 'xml', 'w') as newfile:

   newfile.write(json_to_xml(python_dict))

输出结果(生成xml文件):

  推荐学习:python视频教程以上就是Python归纳总结之json标准库的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: