20220613 学习总结
一,eval函数的用法
eval(字符串) - 去掉字符串最外面的引号获取引号中表达式的结果
# 100 -> str(100) -> '100'
# [10, 20] -> str([10, 20]) -> '[10, 20]'
# '100' -> eval('100') -> 100
# '[10, 20]' -> eval('[10, 20]') -> [10, 20]
result = eval('[10, 20]')
print(result, result[0], result[-1])
# eval('100') -> 100
# eval('100 + 200') -> 300
# eval("'abc'[-1]") -> 'abc'[-1] -> 'c'
print(eval("'abc'[-1]"))
二,json数据
1.json数据 - json格式的数据
json数据格式要求:一个json有且只有一个数据。唯一的这个数据必须是json支持的数据类型的数据
数字 - 和数学表示数字的方式一样
字符串 - 用双引号引起来的数据,例如:“abc”
布尔 - 只有true和false两个值
数组 - 相当于python的列表[data1,data2, …]
字典 - 相当于python中的字典,但是键只能是字符串
空值 - null
2.json数据和python数据之间的转换
a.python中有一个json模块,专门提供和json相关的相关函数
1)json转python(json反序列化)
json -> python
数字 int,float
字符串 str,存在将双引号字符串转换成单引号字符串的现象
布尔 true->True;false->False
数组 list
字典 dict
空值 null->None
b.转换工具:json模块中的loads函数
loads(json格式字符串) - 将指定的json数据转换成对应的python数据
注:json格式字符串 - 指的时候字符串内容是一个合法的json数据的字符串
from json import loads
result = loads('"abc"')
result1 = loads('100')
result2 = loads('true')
result3 = loads('[100, "22", false, null]')
print(result,type(result))
print(result1,type(result1))
print(result2,type(result2))
print(result3,type(result3))
print('-------------------------------------------------------------------华丽的分割线-------------------------------------------------------------------')
#2)python转json(json序列化)
a.转换原则
python -> json
int,float -> 数字
str -> 字符串;单引号字符串会变成双引号字符串
bool -> 布尔;True->true,Falser->false
list,tuple -> 数组
dict -> 字典;键全部都会转换成双引号数据
None -> null
b.转换工具:json模块中的dumps函数
dumps(python数据) - 将指定的python数据转换成对应的json格式字符串
from json import dumps
result = dumps(100)
print(result,type(result))