python——json文件的读取

Json文件也是一个文本文件,可以使用read() 和 write() ,但不方便,所以使用自己独特的方法

Json文件的语法:

  主要数据类型为对象{}(类似Python中的字典)和数组[] (类似Python中的列表)

  Json文件的最外层要么是一个对象{},要么是一个数组[]

  Json中的对象是由键值对组成,每个数据之间用逗号隔开,最后一个数据后无逗号

  Json中的字符串必须使用双引号

Json文件的书写:

  {
"name": "熊猫",
"like": [
"听歌",
"看书",
"运动"
],
"address": {
"country": "中国",
"city": "上海"
}
}

读取Json文件

1、导包  2、读打开文件  3、读取文件 json.load(文件对象)

# 返回值是字典(文件中是对象)或列表(文件中是数组)

eg1:

# 1、导入包
import json

# 读打开文件
with open('Info.json', encoding='utf-8') as a:
# 读取文件
result = json.load(a)
# 获取姓名
print(result.get('name')) # 熊猫
# 获取城市
print(result.get('address').get('city')) # 上海

eg2:提取Json文件中指定数值,组成[{},{}]格式  (自动化参数化需要的数据格式)

Json文件:

[
{
"name": "熊猫",
"like": "听歌",
"address": "上海"
},
{
"name": "老虎",
"like": "运动",
"address": "北京"
}
]

代码:

# 1、导入包
import json

# 读打开文件
with open('Info.json', encoding='utf-8') as a:
# 读取文件
result = json.load(a)
# 定义一个空数组
new_list = []
# 循环遍历
for i in result: # i是个字典
# (i.get('name'), i.get('like'), i.get('address'))
# 熊猫 听歌 上海
# 老虎 运动 北京
new_list.append((i.get('name'), i.get('like'), i.get('address'))) # 将获取的值存入数组中
print(new_list) # [('熊猫', '听歌', '上海'), ('老虎', '运动', '北京')]

写入Json文件

1、导包  2、写(w)方式打开文件   3、写入   json.dump(文件类型,文件对象)

my_list = [('熊猫', '听歌', '上海'), ('老虎', '运动', '北京')]
with open('Info2.json', 'w', encoding='utf-8') as b:
# ensure_ascii 显示中文,不以ASCII的方式显示
json.dump(my_list, b, ensure_ascii=False, indent=2) # indent 缩进

Info2.json:

[
[
"熊猫",
"听歌",
"上海"
],
[
"老虎",
"运动",
"北京"
]
]
posted @ 2022-06-07 14:15  非同凡响  阅读(32934)  评论(0编辑  收藏  举报