Python基础:列表、字典、json之间的相互转换

Python基础:列表、字典、json之间的相互转换

  • 1.列表、字典、json的形式
  • 2.列表中添加字典
  • 3.字典中添加列表
  • 4.列表&字典与json的转换

前言:对于刚接触Python的新鸟来说,数据之间的转换特别蛋疼,今天我就来说一下,列表、字典、json之间的转换,也就是说集合转换成json,json转换成集合,以及列表和字典之间的关系。


1.列表、字典、json的形式

  • 如果你对集合、字典还不太熟悉的话欢迎移步《Python快速入门(五)高级函数1:列表、del关键字、元组》、《Python快速入门(六)高级函数2:字典、字符串、for语法》
  • 列表的简单形式:name_list = ["fly1", "fly2", "fly3"]
  • 字典的简单形式:person_dict = {"name": "fly", "age": 18}
  • json数据:简单的理解就是由列表和字典组成的数据

2.列表中添加字典

上面简单的介绍了列表和字典的形式,当然我们在实际开发中,数据可能比这要复杂的多。

  • 列表包含字典:仔细分析上面的例子,我们可以发现name_list里面存的是name(也就是字符串),看下面的person_dict。所以我们可以写成列表包含字典这种形式,丰富我们的数据。

代码:

#声明一个空的列表
person_list = []

# 声明字典
person_dict1 = {"name": "fly1","age": 16}
person_dict2 = {"name": "fly2","age": 17}
person_dict3 = {"name": "fly3","age": 18}
person_dict4 = {"name": "fly4","age": 19}
person_dict5 = {"name": "fly5","age": 20}

# 把字典添加到列表集合中去
person_list.append(person_dict1)
person_list.append(person_dict2)
person_list.append(person_dict3)
person_list.append(person_dict4)
person_list.append(person_dict5)

print(type(person_list))
print(person_list)

# 遍历 列表里面的字典
for person_dict in person_list:
    print(person_dict)

# 遍历 列表里面的字典中的一个属性
for person_dict in person_list:
    print(person_dict["name"])

输出结果:
Python基础:列表、字典、json之间的相互转换_第1张图片
这个代码写的有点傻,我们可以利用for循环把字典添加到列表集合中去。
改进代码:

#声明一个空的列表
person_list = []

for i in range(10):
    # 声明字典
    person_dict = {"name": "fly"+str(i), "age": "1"+str(i)}
    # 把字典添加到列表集合中去
    person_list.append(person_dict)

print(type(person_list))
print(person_list)

# 遍历 列表里面的字典
for person_dict in person_list:
    print(person_dict)

# 遍历 列表里面的字典中的一个属性
for person_dict in person_list:
    print(person_dict["name"])

输出结果:
Python基础:列表、字典、json之间的相互转换_第2张图片

3.字典中添加列表

通过上面的例子,理解了列表集合中添加字典的用法,当然我们也可以在字典中添加列表。
代码:

#声明一个空的列表
person_list = []

program_list = ["Python","Java","C","数据结构"]

for i in range(6):
    # 声明字典 增加列表属性
    person_dict = {"name": "fly"+str(i), "age": "1"+str(i),"program_list":program_list}
    # 把字典添加到列表集合中去
    person_list.append(person_dict)


print(type(person_list))
print(person_list)
print("*"*100)

# 遍历 列表里面的字典
for person_dict in person_list:
    print(person_dict)
print("*" * 100)

# 遍历 列表里面的字典中的一个属性
for person_dict in person_list:
    print(person_dict["program_list"])
print("*"*100)

# 遍历 列表里面的字典中的列表中的第二个数据
for person_dict in person_list:
    print(person_dict["program_list"][1])
print("*"*100)

输出结果:
Python基础:列表、字典、json之间的相互转换_第3张图片

4.列表&字典与json的转换

  • list转换成json:str_json = json.dumps(list, ensure_ascii=False, indent=2)
  • json转换成list:list = json.loads(str_json)

代码:

import json

"""
list转换成json
"""
def list_tran_json(list):
    str_json = json.dumps(list, ensure_ascii=False, indent=2)
    return str_json

"""
json转换成list
"""
def json_tran_list(str_json):
    list = json.loads(str_json)
    return list

#声明一个空的列表
person_list = []

program_list = ["Python","Java","C","数据结构"]

for i in range(6):
    # 声明字典 增加列表属性
    person_dict = {"name": "fly"+str(i), "age": "1"+str(i),"program_list":program_list}
    # 把字典添加到列表集合中去
    person_list.append(person_dict)

print(type(person_list))
print(person_list)
print("*"*100)

str_json = list_tran_json(person_list)
print(type(str_json))
print(str_json)
print("*"*100)

list = json_tran_list(str_json)
print(type(list))
print(list)

输出:
Python基础:列表、字典、json之间的相互转换_第4张图片


学习,重在积累,加油!

你可能感兴趣的:(Python系列,Python的json,Python集合与json转换)