day17 json 和命名对象
一、json数据格式和作用
1、json数据格式的作用
"""
json和xml是两种通用的数据格式,几乎所有的高级编程语言都支持。
json和xml数据的格式的存在,是为了让不同编程语言的程序可以进行有效的数据沟通
"""
2、json数据格式
"""
json数据格式的要求:1)一个json有且只有一个数据 2)唯一的这个数据必须是json支持的数据类型的数据
json支持的数据类型:
数字 - 表示的时候直接写,并且支持科学计数法,例如:23、3.89、3e4
字符串 - 表示的时候只能加双引号,支持转义字符
布尔 - 只有true和false
数组 - 相当于Python的列表, [元素1, 元素2, ...]
字典 - 相当于Python的字典,键只能是字符串
空值 - null
"""
3、json和python数据结构的相互转换
import json
"""
json - python
数字 - int、float
字符串 - str(默认会将双引号变成单引号)
布尔 - true -> True,false -> False
数组 - list
字典 - dict
空值 - null -> None
方法:json.loads(json格式的字符串) - 将json数据转换对应的python数据。
json格式的字符串:字符串内容是json数据的字符串
"""
result = json. loads( '"abc"' )
print ( result, type ( result) )
result = json. loads( '[10, "小明", true, null]' )
print ( result, type ( result) )
content = open ( 'data.json' , encoding= "UTF-8" ) . read( )
data = json. loads( content)
all_data = [ ]
for x in data[ 'newslist' ] :
all_data. append( ( x[ 'provinceName' ] , x[ 'currentConfirmedCount' ] ) )
all_data. sort( key= lambda x: x[ - 1 ] , reverse= True )
print ( all_data)
"""
python - json
int、float 数字
str 字符串,单引号会变成双引号
bool 布尔,True -> true,False -> false
list、tuple 数组
dict 字典
空值 None -> null
json.dumps(python数据) - 将python数据转换成json格式字符串
"""
result = json. dumps( 'abc' )
print ( result, type ( result) )
result = json. dumps( [ 10 , 2.3 , '小明' , True , None , { 1 : 'abc' } ] )
print ( result, type ( result) )
二 编程思维
1、常见编程思维
"""
1) 面向过程编程(穷人思想) - 语法、逻辑
2) 函数式编程(小资思想) - 函数
3) 面向对象编程(富豪思想) - 类和对象
"""
sum1 = 1
for x in range ( 1 , 11 ) :
sum1 *= x
print ( sum1)
import math
result = math. factorial( 10 )
print ( result)
def factorial ( n) :
sum1 = 1
for x in range ( 1 , n+ 1 ) :
sum1 *= x
return sum1
result = factorial( 10 )
print ( result)
class Math :
@staticmethod
def factorial ( n) :
sum1 = 1
for x in range ( 1 , n + 1 ) :
sum1 *= x
return sum1
result = Math. factorial( 10 )
print ( result)
三、类和对象
"""
什么是类:类就是拥有相同功能和相同属性的对象的集合
什么是对象:对象就是类的实例
从生活的角度, 人是类,余婷是人的对象,骆昊是人的另外一个对象
杯子是一个类,我的杯子是对象。
"""
"""
语法:
class 类名:
类的说明文档
类的内容
说明:
class - 关键字;固定写法
类名 - 程序员自己命名,必须满足两个要求: a.标识符 b .不是关键字
三个规范: 见名知意 采用大驼峰式命名,第一个字母必须大写
(小驼峰:第一个单词首字母小写,其余单词首字母大写)
c 不使用系统的函数名、模块名和类名
类的说明文档 - 本质就是多行注释
类的内容 - 包含属性和方法,其中属性分为对象属性和类属性两种,方法(本质就是函数)分为对象方法、类方法和静态方法三种
"""
list
class Person :
"""
类的说明文档
"""
num = 61
def __init__ ( self) :
self. name = '小明'
self. age = 18
def func1 ( self) :
print ( '对象方法' )
@classmethod
def func2 ( cls) :
print ( '类方法' )
@staticmethod
def func3 ( ) :
print ( '静态方法' )
"""
语法:
类名()
"""
p1 = Person( )
p2 = Person( )
print ( p1, p2)