【Python】python 中 json、class、str 的相互转换

参考: https://blog.csdn.net/qq_29201493/article/details/85697377

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File    :   garbage_test.py
@Time    :   2019/06/15 08:26:17
@Author  :   California Fruit
@Desc    :   None
'''

import json
class Student(object):
    def __init__(self, name, age, score,reward):
        self.name = name
        self.age = age
        self.score = score
        self.reward = reward

def json_2str():
    data_json = {'name':'nick',
            'age':12}
    json_str = json.dumps(data_json)
    print type(json_str), json_str

def str_2json():
    json_str = '{"age": 12, "name": "nick"}'
    json_class = json.loads(json_str)
    print type(json_class), json_class

def class_2jsonStr():
    stu = Student('Bob', 20, 88,["三好学生","优秀团干","最佳辩手"])
    print json.dumps(obj=stu.__dict__,ensure_ascii=False)

def jsonStr_2class():

    def dict2student(d):
        return Student(d['name'], d['age'], d['score'],d['reward'])

    json_str = '{"name": "Bob", "age": 20, "score": 88, "reward": ["三好学生", "优秀团干", "最佳辩手"]}'
    student = json.loads(json_str,object_hook=dict2student)
    print(type(student))
    print(student.name)

if __name__ == "__main__":
    jsonStr_2class()

原文地址:https://www.cnblogs.com/jzsg/p/11026384.html

时间: 2024-10-06 19:03:06

【Python】python 中 json、class、str 的相互转换的相关文章

Python序列化中json模块和pickle模块

1.什么是序列化? 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给? 现在我们能想到的方法就是存在文件里,然后另一个python程序再从文件里读出来. 但是我们都知道,对于文件来说是没有字典这个概念的,所以我们只能将数据转换成字典放到文件中. 你一定会问,将字典转换成一个字符串很简单,就是str(dic)就可以办到了,为什么我们还要学习序列化模块呢? 没错序列化的过程就是从dic 变成str(dic)

Python 3中bytes和str的分别

最近把一段py2的代码转换到py3的代码,结果运行到向socket中写数据的代码部分出现了'str' does not support the buffer interface这样一个错误. 一番搜索之后,发现py3里是严格区分了str和bytes的.怎么理解str和bytes呢?你可以认为str是一段文本,比如“abcd#%$^*&”什么的,而bytes呢,是二进制的一堆0,1的比特而已.看下面的图: 可以看到str的类型是class 'str',而str.encode()以后类型是class

python基础:json.loads(str)出现错误总结

1 >>> import json 2 >>> test="{'data':'123'}" 3 >>> result=json.loads(test) 4 Traceback (most recent call last): 5 File "<stdin>", line 1, in <module> 6 File "d:\Anaconda3\lib\json\__init__.p

[ Python入门教程 ] Python中JSON模块基本使用方法

JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式,Python标准库中的json模块提供了一种简单的方法来编码和解码JSON格式的数据.用于完成字符串和python数据类型间进行转换. json模块基本函数   json.dumps():把Python数据类型转换成JSON字符串   json.loads():把JSON字符串转换成Python数据类型   json.dump():把Python数据类型转换成JSON字符串并存储在文件中   json

Python 中json与字典的关系

Python开发中字典和 json的概念区别: 一.字典 字典是一种数据结构,而json是一种数据格式,格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界符号(值如果是数字可以不用加双引号),不能使用单引号,用单引号或者不用引号会导致读取数据错误,而且“key”必须使用边界符(双引号),但字典就无所谓了,可以使用单引号,也可以使用双引号. dict是一个完整的数据结构,是对Hash Table这一数据结构的一种实现,是一套从存储到提取都封装好了的方案.它

python中json.dumps使用的坑以及字符编码

我们知道,python中的字符串分普通字符串和unicode字符串,一般从数据库中读取的字符串会自动被转换为unicode字符串 下面回到重点,使用json.dumps时,一般的用法为: >>> obj={"name":"测试"} >>> json.dumps(obj)'{"name": "\\u6d4b\\u8bd5"}' >>> print json.dumps(obj

python 中json has no attribute &#39;loads&#39;

在python爬虫时出现了json has no attribute 'loads'问题. 1 可能是没有安装json包,cmd-pip install json, 显示已安装. 2 当前盘中存在json.py文件,导致错误. 因为我的python文件是保存在F盘中的,而F盘中有名为json.py的文件,所以运行程序时首先在F盘中寻找json文件,名称有json的被认为json包,而其中没有loads模块. 3 解决办法:把F盘中的json.py改名为json1.py重新运行程序,问题解决. p

Python中字符串表示str与repr

所有通过Python打印的字符串还是被引号括起来的.这是因为Python打印值的时候会保持该值在Python代码中的状态,而不是你希望用户看到的状态,如果使用print 语句,结果就不一样了. >>> "Hello,world"'Hello,world'        # Python打印出来的值是给python理解的,这里python理解为字符串,所以带着引号 >>> print "Hello,world"Hello,world

Python序列化之json与pickle

1.json介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等

python对象和json格式文本之间的转换

python进程中的实例和json格式的字符串之间的映射关系是非常直接的,相当于同一个概念被编码成不同的表示: str in json form ----json.loads()-----> python object str in json form <----json.dumps()----- python object 不过需注意类型的匹配,否则会报错.比如说json格式中大括号中的键值应当写成字符串.概念上json文本和python数据类型之间的对应关系是: 有没有觉得实在是太简单了!