# encoding:utf-8

def get_str(data):
"""将python数据转化为肉眼可见的字符串
:param data: str、dict、list
:return: str
"""
if data is None:
return ""
if isinstance(data, str):
return "%s" % data
elif isinstance(data, dict):
ret = "{"
for key, value in data.items():
# 处理key
if isinstance(key, int) or isinstance(key, float):
ret += "%s: " % str(key)
else:
ret += "'%s': " % key
# 处理值
if isinstance(value, int) or isinstance(value, float):
ret += "%s, " % str(value)
elif isinstance(value, str):
ret += "'%s', " % value
else:
ret += get_str(value)+", "
ret += "} "
elif isinstance(data, list):
ret = "["
for value in data:
if isinstance(value, int) or isinstance(value, float):
ret += "%s, " % str(value)
elif isinstance(value, str):
ret += "'%s', " % value
else:
ret += get_str(value) + ", "
ret += "] "
elif isinstance(data, set) or isinstance(data, tuple):
ret = "("
for value in data:
if isinstance(value, int) or isinstance(value, float):
ret += "%s, " % str(value)
elif isinstance(value, str):
ret += "'%s', " % value
else:
ret += get_str(value) + ", "
ret += ") "
else:
ret = "%s" % str(data)
return ret if __name__ == "__main__":
data = {
"items": {
"datetime": "2021-09-15 10:54:59",
"internet": 1,
"server": "pool.ntp.org",
"timezone": "+8"},
"zone_list": [
"(UTC)协调世界时",
"(UTC)卡萨布兰卡",
"(UTC)蒙罗维亚、雷克雅未克",
"(UTC)都柏林、爱丁堡、里斯本、伦敦",
"(UTC+01:00)布鲁塞尔、哥本哈根、马德里、巴黎"],
"zone_name":"(UTC+08:00)北京、重庆、香港特别行政区、乌鲁木齐",
"message": "ok",
"status": 1000,
"token": "5b2fe1ce5fe0aa6123c09bc8a4d51b40"
}
print data
print get_str(data)

  

python数据结构转字符串_python2中字符不显示问题_python2_递归的更多相关文章

  1. python数据结构-如何为元组中的每个元素命名

    如何为元组中的每个元素命名 简述 当对象数据格式固定时,用元组比列表更节省内存空间, 我们使用索引访问元组元素,但是这种访问方式会降低程序的可读性. 举个栗子 对于学生的信息,我们有固定的数据格式,我 ...

  2. python数据结构-如何统计序列中元素的频度

    如何统计序列中元素的频度 问题举例 如何找出随机序列[1, 5, 6, 5, 3, 2, 1, 0, 6, 1, 6]中出现频度最高的3个元素? 如何统计某篇英文文章中词频最高的5个单词? 将序列转换 ...

  3. python数据结构-如何根据字典中值的大小对字典项排序

    如何根据字典中值的大小对字典项排序 问题举例 某班英语成绩以字典形式存储,如何根据成绩高低,计算学生成绩排名 { “tom”:80, "lily":88, "marton ...

  4. c程序设计语言_习题1-19_编写函数reverse(s)将字符串s中字符顺序颠倒过来。

    Write a function reverse(s) that reverses the character string s . Use it to write a program that re ...

  5. python 判断列表字符串元素首尾字符是否相同

    def match_words(words): ctr = for word in words: and word[] == word[-]: ctr += return ctr print(matc ...

  6. python 正则匹配字符串里面的字符

    import re x=re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest') print(x)

  7. python 解决抓取网页中的中文显示乱码问题

    关于爬虫乱码有很多各式各样的问题,这里不仅是中文乱码,编码转换.还包括一些如日文.韩文 .俄文.藏文之类的乱码处理,因为解决方式是一致的,故在此统一说明. 网络爬虫出现乱码的原因 源网页编码和爬取下来 ...

  8. Python:删除字符串中的字符

    一.删除字符串两端的一种或多种字符 #strip().lstrip().rstrip()方法:(默认删除空格符) A.list.strip(字符):删除字符串两端的一种或多种字符: #例:删除字符串s ...

  9. Python之数据结构:字符串中的方法

    一.过滤字符串 1.strip() (1)去掉行收尾不可见字符 a = ' wejifrow ' print a print a.strip() 结果: wejifrow wejifrow (2)st ...

  10. python中repr和eval可以用来在数据结构和字符串间互转

    在这个功能上,repr和str的作用一样,把一个数据结构转换成字符串,例如: >>> str([1,2,3,4])'[1, 2, 3, 4]' >>> repr([ ...

随机推荐

  1. Django不使用序列化器时来进行查询结果序列化

    1.views.py文件中的代码 class DemoView(View): def get(self, request): user = User.object.all() list1 = [] f ...

  2. vscode - plug - scss转css

    vscode - plug - scss转css 参考资料 sass笔记(完结)安装,使用,vscode中设置easy sass,嵌套,变量,混合,循环,分支 vscode配置 easy sass E ...

  3. vue 的生命周期

    生命周期就是 vue 从开始创建到销毁的过程,分为四大步(创建,挂载, 更新,销毁),每一步又分为两小步,如 beforeCreate,created.beforeCreate 前,也就是 new V ...

  4. 062_Apex使用Assert

    assert关键字用法简单,但是使用assert往往会让你陷入越来越深的陷阱中.应避免使用.总结了以下原因:   1.用assert代替if是陷阱之二.assert的判断和if语句差不多,但两者的作用 ...

  5. 可视化 之D3 与echarts 对比以及应用场景

    可视化:我们想要看出一组数据的大小关系,单看数据显然不够直观.那么我们可以将它转换为一种简单易懂的图表的形式,就可以更加直观的获取数据所传递给我们的信息.这个过程就叫做数据可视化.可视化常用2个前端库 ...

  6. mysql之数据库操作-第一篇

    1.数据库的创建 mysql> create database if not exists myTestDB; Query OK, 1 row affected (0.00 sec) 2.查看可 ...

  7. Vue中nextTick的时序问题

    前言 Vue.$nextTick这个API相信很多人都用过,按照文档的解释,"在下次DOM更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的DOM".我们通 ...

  8. vue实现按钮多选

    需求是这样: 首先考虑使用elementui中的组建实现,但是有时候会忽略组建.实现方式两种: 1.直接使用element实现 let weekTimeData: [ '星期一', '星期二', '星 ...

  9. redis 简单安装

    参考官网,安装步骤基本照搬redis官网,其他只做简单说明https://redis.io/download/https://redis.io/docs/getting-started/install ...

  10. 第8章 使用标记帮助工具构建表单(ASP.NET Core in Action, 2nd Edition)

    本章包括 使用Tag Helpers轻松构建表单 使用锚标记帮助程序生成URL 使用Tag Helpers为Razor添加功能 在第7章中,您了解了Razor模板以及如何使用它们为应用程序生成视图.通 ...