利用Python实现json格式转换为csv文件格式

前言

本文是学校的课程设计,这里我没有用封装好的json库来实现,而是把读进来的文件当一个字符串来处理,核心函数其实是python的eval()类型转换函数。

什么是 JSON?

我们要考虑到json格式下key-value对的结构是无序的。JSON:JavaScript Object Notation(JavaScript 对象表示法),是存储和交换文本信息的语法。有点类似 XML,JSON 比 XML 更小、更快,更易解析,同时删除了不必要的元素信息。

读取文件

首先读取文件数据到data_str, 这里注意文件编码,否则会出现乱码。

with 

观察一下读取的json内容

print

json文件格式

  1. 对象可以包含多个 key/value(键/值)对。
  2. key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
  3. key 和 value 中使用冒号(:)分割。
  4. 每个 key/value 对使用逗号(,)分割。

替换元素

对json文件做一个替换,这里这样替换是有问题的,因为从前向后扫描的时候只有在引号外的元素才需要替换,可以对扫过的引号数量取模实现。

data_str 

类型函数

判断当前的字符串属于哪个类型

def 

head函数的实现

遍历获得json的所有key作为csv的表头

data_head 

body内容的转换

data_head_dict保存转换后CSV的body内容

data_head_dict 

宽度的拓展,这里实现的时候比较暴力。解决方案如下: 1. 最后自底向上删空行 2. 处理head的时候加tag记录行号

for 

看一下表的内容是否正确

for 

输出CSV文件

with 

以utf-8编码格式输出文件

with 

5 rows × 116 columns

csv 字符串_Python实现json转csv格式相关推荐

  1. php json字符串导出csv,使用PHP将JSON转换为CSV格式

    我正在尝试使用 PHP脚本将json文件转换为csv格式.代码如下: if (empty($argv[1])) die("The json file name or URL is misse ...

  2. 用python的pandas打开csv文件_python读写数据读写csv文件(pandas用法)

    python中数据处理是比较方便的,经常用的就是读写文件,提取数据等,本博客主要介绍其中的一些用法.Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用 ...

  3. python pandas 处理相同标题的csv文件_Python使用pandas处理CSV文件的实例讲解

    Python中有许多方便的库可以用来进行数据处理,尤其是Numpy和Pandas,再搭配matplot画图专用模块,功能十分强大. CSV(Comma-Separated Values)格式的文件是指 ...

  4. csv 字符串_爬虫|python读写csv文件的方法完成生涯规划表

    前面用PrettyTable制作了生涯规划表,今天突然想到其实可以用Python读写Excel文件,还可以制作Excel表格,相对而言,感觉csv的读写更简单,所以决定用csv改写生涯规划案例,以后教 ...

  5. python如何导出csv文件_python pandas如何输出csv文件

    python pandas如何输出csv文件​mp.weixin.qq.com 有如下csv文件,在读取之后,如何输出为同样的格式 1.常见用法 >>> df.to_csv(r'D: ...

  6. python合并csv文件_Python学习——pandas 合并csv文件

    import pandas as pd import os import re import numpy as np Folder_Path = r'C:/Users/Cable-Ching\Desk ...

  7. python 序列化压缩成字符串_Python 将json序列化后的字符串转换成字典(推荐)

    一般而言下面的就可以完成需求了. def convertToDic(data): jsonDic=json.loads(data) return dict(jsonDic) 但实际应用中可能会出现一些 ...

  8. python指定目录生成.csv文件_python文件处理-根据csv文件内容,将对应图像拷贝到指定文件夹...

    #-*- coding: utf-8 -*- importcsvimportosimportsysimportnumpy as npimportcopyimportshutilimportpandas ...

  9. 如何在命令行中使用jq将JSON转换为CSV

    by Knut Melvær 通过纳特·梅尔瓦 如何在命令行中使用jq将JSON转换为CSV (How to transform JSON to CSV using jq in the command ...

最新文章

  1. 如何通过 Scratch 教小朋友编程思维?
  2. php fileputcontents,在php中file_put_contents函数起什么作用呢?
  3. BCompare注册文件+密钥被撤销解决方案
  4. stealwatch里的安全功能——ETA结果会显示加密套件以及key长度,还有流量大小(例如41MB)...
  5. python与excel做数据可视化-python数据可视化怎么做?excel可视化图表制作?
  6. Android帧布局(Frame Layout)
  7. codeforces 数论分析题
  8. oracle备份归档文件,oracle 如何不备份已经备份的归档
  9. [JavaWeb-JavaScript]JavaScript变量
  10. [SDOI2012]吊灯(结论)
  11. [html] 怎样去除iOS和Android中的输入URL地址的控件条呢?
  12. Spring 容器(Spring 的上下文)
  13. android 邮箱注册功能,手机邮箱怎么注册登录(安卓手机邮箱设置教程)
  14. 信息安全管理的效益分析
  15. 知识图谱在应用过程中,主要面临哪些困难?
  16. 如何正确安装和设置IBM Lotus Notes 邮箱客户端
  17. 使用paddlepaddle进行手写数字识别
  18. 几万年前,孙悟空大闹地府后删库跑路了!那阎王生死簿又该怎么写呢?
  19. 安卓开发环境教程!史上最强vue总结来了,大厂直通车!
  20. STM32 CubeMx教程 -- 基础知识及配置使用教程

热门文章

  1. oracle 超市管理系统,SuperManager 超市账单管理系统 JSP + Servlet + Oracle Jsp/ 240万源代码下载- www.pudn.com...
  2. python计算执行时间的函数_[python] 统计函数运行时间
  3. 计算器软件C语言课程设计实验报告,c简单计算器实验报告_相关文章专题_写写帮文库...
  4. Docker+Nginx部署Angular国际化i18n
  5. CSS 字体(font)实例
  6. Guava翻译系列之EventBus
  7. informatica中元数据管理
  8. 1593: [Usaco2008 Feb]Hotel 旅馆
  9. a20隐藏底部按钮及隐藏状态栏和虚拟按键栏
  10. malloc coredump(宕)的问题