Python数据类型:枚举enum和json

Posted 风流 少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据类型:枚举enum和json相关的知识,希望对你有一定的参考价值。

一:枚举

from enum import Enum, unique

# 枚举中的key不能相同,value可以相同,如果希望value不相同可以使用@unique来限制
# IntEnum 表示value值只能是整型数字或者整型字符串
@unique
class Weekday(Enum):
    monday = 1
    tuesday = 2
    wednesday = 3
    thursday = 4
    friday = 5
    saturday = 6
    sunday = 7


# 为枚举项添加其他属性,可以为同一个枚举项添加多个属性
Weekday.monday.label = '星期一'
Weekday.tuesday.label = '星期二'
Weekday.wednesday.label = '星期三'
Weekday.thursday.label = '星期四'
Weekday.friday.label = '星期五'
Weekday.saturday.label = '星期六'
Weekday.sunday.label = '星期日'


# 枚举可以使用==或者is关键字进行比较
monday = Weekday['monday']
monday2 = Weekday(1)

# <enum 'Weekday'> monday 1 星期一 True True
print(type(Weekday.monday),
      Weekday.monday.name,
      Weekday.monday.value,
      Weekday.monday.label,
      monday == monday2,
      monday is monday2)

二:json

  • dumps:将字典转为json字符串(dict -> str)。
  • loads:将字符串转为字典对象(str -> dict)。
  • dump:将字典写入文件(dict -> file)。
  • load:将file转为字典(file -> dict)。
import json

# 对象转json字符串, json中有中文需要关闭ensure_ascii
user = "id": 1, "username": "admin", "name": "张无忌"
user_json = json.dumps(user, ensure_ascii=False)

# json字符串转对象
user_obj = json.loads(user_json)

将字典写入文件中。

import json

user_dict = 
    'username': '虚竹',
    'age': 30


with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(user_dict, f, ensure_ascii=False)

with open('data.json', 'r', encoding='utf-8') as f:
    user_dict2 = json.load(f)

以上是关于Python数据类型:枚举enum和json的主要内容,如果未能解决你的问题,请参考以下文章

人生苦短之Python枚举类型enum

Python数据结构与算法---枚举类型enum

Python数据结构与算法---枚举类型enum

[python] Python枚举模块enum总结

python 枚举Enum

5.9 enum--支持枚举类型