Python3 网络传输数据的处理(json / xml / base64)

Python3 网络传输数据的处理(json / xml / base64)


本文由 Luzhuo 编写,转发请保留该信息.
原文: http://blog.csdn.net/Rozol/article/details/72760548


以下代码以Python3.6.1为例
Less is more!

json

#!/usr/bin/env python
# coding=utf-8
__author__ = 'Luzhuo'
__date__ = '2017/5/4'
# json_demo.py json格式的数据
# 解析和创建json数据
# 编码: 默认编码为"ascii", 中文(非ASCII字符)将被转义

import json


class Person:
    def __init__(self):
        self.name = "luzhuo"
        self.age = 23
        self.lists = [4, 5, 6, "中文"]

data = {
  "dicts": None, "class": None}
dicts = {
  "name": "luzhuo", "age": 21, "lists": [1, 2, 3, "中文"]}


def json_encode():
    '''
    编码
    '''

    # 编码字典
    data_dicts = json.dumps(dicts, indent=4)
    print(data_dicts)
    data["dicts"] = data_dicts

    # 编码类
    data_class = json.dumps(Person(), indent=4, default=lambda obj: obj.__dict__)
    print(data_class)
    data["class"] = data_class


def json_decode():
    '''
    解码
    '''

    # 解码字典
    dicts = json.loads(data["dicts"])
    print(dicts)

    # 解码类(实际上是被解析成了字典)
    clazz = json.loads(data["class"])
    print(clazz)



def json_func():
    # 将obj序列转为fp, skipkeys:是否跳过非Python基本类型的数据, ensure_ascii:是否将非ASCII字符转义, check_circular:是否进行容器循环引用检查, indent:格式化None/int, default:def default(obj):为不能为序列化的函数调用, sort_keys:是否按键排序
    # json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
    json.dump(dicts, open("file.txt", "w"))
    # 将obj序列转为json格式的str
    # json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
    data_str = json.dumps(dicts)

    # 从fp反序列化为python对象
    # json.load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
    data_dict = json.load(open("file.txt"))
    # 从str反序列化为python对象
    # json.loads(s, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
    data_dict = json.loads(data_str)

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值