加入我们 登录
漫潮者,私有云,NAS,新媒体电商.软件开发,商乾 返回首页

北极孤星的泪的个人空间 https://www.aurrel.com/?1 [收藏] [复制] [分享] [RSS]

日志

Python处理json格式数据

已有 486 次阅读2019-6-4 17:10 |个人分类:我的笔记——技术篇| python

(一)JSON 数据格式
1.JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。 
2.JSON数据格式是数据传输中最常见的格式之一,人们喜欢使用这种格式,是因为它结构清晰,易于阅读且方便解析。网址在向页面JavaScript传输数据时,JSON是最常用的数据格式之一。
(二)JSON数据结构“名称/值”对的集合(A collection of name/value pairs)。
不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
(三)JSON知识反序列化:是指将字符串转换成Python中的数据类型,目的是操作数据。序列号:是指将Python中的数据类型转换成字符串,目的是将数据写入文本。Json模块提供了四个功能:dumps()、dump()、loads()、load()。
1.dumps()方法把数据类型转换成字符串 。 
2.dump()方法把数据类型转换成字符串并存储在文件中 
3.loads()方法把字符串转换成数据类型 
4. load()方法把文件打开从字符串转换成数据类型
1.dumps()方法把数据类型转换成字符串 。
a = [{'姓名': 'Kaina', '年龄': 22, '职业': '销售员', '工资': 5000}]
print(type(a))
b=json.dumps(a)
print(type(b))
结果演示:
<class 'list'>
<class 'str'>
2.dump()方法把数据类型转换成字符串并存储在文件中
import json
with open("aim.json","a",encoding='utf-8') as f:
a = [{'姓名': 'Kaina', '年龄': 22, '职业': '销售员', '工资': 5000}]
print(type(a))
'''
1.消除乱码ensure_ascii=False
2.把数据类型转换成字符串并存储在文件中
'''
b=json.dump(a,f,ensure_ascii=False)
print('数据写入完毕!')
3.loads()方法把字符串转换成数据类型

(四)实例演示

1.test.json文本内容如下:

[
  {
    "姓名": "张三",
    "年龄": 29,
    "职业": "讲师",
    "工资": 10000
  },
   {
    "姓名": "李四",
    "年龄": 26,
    "职业": "主管",
    "工资": 8000
  }
  ,
   {
    "姓名": "王五",
    "年龄": 27,
    "职业": "程序员",
    "工资": 9000
  }
  ]
2.把test.json中的数据导入程序中
方法一
import json
#1.从josn文件中读取数据,并保存在josn_data变量中
json_data=open('test.json',encoding='utf-8').read()
print(type(json_data))
#2.json调用loads()方法将字符串数据转换成列表
data=json.loads(json_data)
print(type(data))
print(data)
for item in data:
    print(item)
 
 
----------
方法二
import json
f=open('test.json',encoding='utf-8')
#1.将数据导入程序
data=json.load(f)
#2.遍历data,打印列表中的每一个字典
for dict_data in data:
    print(dict_data)
结果演示:
{'姓名': '张三', '年龄': 29, '职业': '讲师', '工资': 10000}
{'姓名': '李四', '年龄': 26, '职业': '主管', '工资': 8000}
{'姓名': '王五', '年龄': 27, '职业': '程序员', '工资': 9000}
3.获取字典某一键对应的值
import json
f=open('test.json',encoding='utf-8')
#1.将数据导入程序
data=json.load(f)
#2.遍历data,打印列表中的每一个字典
for dict_data in data:
    print(dict_data['姓名'],'工资='+str(dict_data['工资']))
结果演示:
张三 工资=10000
李四 工资=8000
王五 工资=9000
4.将一个JSON文件中的内容写到另一个JSON文件中(复制)
import json
#1.从josn文件中读取数据,并保存在josn_data变量中
json_data=open('test.json',encoding='utf-8').read()
aim_f = open('aim.json', 'w', encoding='utf-8')
#2.把test.json文件中的数据Copy到aim.json中
#3.目标文件对象调用write()方法把字符串写入
aim_f.write(json_data)
5.获取字典的最大值
import json
f=open('test.json',encoding='utf-8')
#1.将数据导入程序
data=json.load(f)
names=[]
salary=[]
#根据索引从列表中找到工资最高人的姓名
index=0
#2.遍历data,打印列表中的每一个字典
for dict_data in data:
    names.append(dict_data['姓名'])
    salary.append(dict_data['工资'])
for i ,value in enumerate(salary):
    if value==10000:
        index=i
print(names[index]+'工资最高:'+str(max(salary)))
结果演示:
{'姓名': '张三', '年龄': 29, '职业': '讲师', '工资': 10000}
{'姓名': '李四', '年龄': 26, '职业': '主管', '工资': 8000}
{'姓名': '王五', '年龄': 27, '职业': '程序员', '工资': 9000}
张三工资最高:10000
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 加入我们

商乾全球电商人、电商交流学习与电商实战技术分享、电商爬虫、生活交流专业网站
  • 官方手机版

  • 微信公众号

  • 商务合作