json格式转csv文件

  • 前言
  • json代码
  • 最后写出来的代码
  • 总结

前言

小白在学爬虫的时候,在百度翻译爬了一段json格式的字段,然后想要将其转成csv格式
奈何这个格式对小白来说太不友好,故发出来让大佬看看怎么写最好

json代码

代码如下:

{'errno': 0, 'data': [{'k': 'orange', 'v': 'n. 橙子; 柑橘; 橙汁; 橘汁饮料; 橙红色; 橘黄色; adj. 橙红色的; 橘黄色的; 奥兰'},/{'k': 'oranges', 'v': 'n. 橙子; 柑橘; 橙汁; 橘汁饮料; 橙红色; 橘黄色;  orange的复数;'}, /{'k': 'orange juice', 'v': ' 橙(橘)汁; 缩写词为o.j.;'}, {'k': 'Orange Juice', 'v': '网络 鲜榨橙汁; 橙子; 鲜橙多; 橙汁;'},/{'k': 'orangeade', 'v': 'n. 橙汁饮料; 橘子汁; 橙汁汽水; 一杯橙汁汽水;'}]}

最后写出来的代码

代码如下:

from urllib.request import urlopen,Request
from urllib.parse import urlencode
import json
import csvurl = 'https://fanyi.baidu.com/sug'        #请求的api接口
data = {}
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36','cookie':'BIDUPSID=A99B4CF715AD2AD4139D6BD1643F4D70; PSTM=1602400451; BAIDUID=A99B4CF715AD2AD47F73751113EF365C:FG=1; delPer=0; PSINO=3; H_PS_PSSID=32754_32617_1425_7566_32795_32706_32230_7517_32781_32115_26350; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1602400467,1602400508; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1602400508; __yjsv5_shitong=1.0_7_dd47a528be1adaef2d454f69983fc5d34edf_300_1602400511209_101.68.71.13_a54b7624; yjs_js_security_passport=75d9f20a4d3ebb6abb12faadd399e9ed1bb50904_1602400532_js','x-requested-with': 'XMLHttpRequest'#请求类型
}
def fanyi(kw):data = {'kw':kw}#request()中的data参数是bytes 类型req = Request(url,data=urlencode(data).encode('utf-8'))resp = urlopen(req)assert resp.code==200json_data = resp.read()#bytecontent_encode = resp.getheader('Content-Type')json.loads(json_data.decode('utf-8'))json2csv(json_data,'fanyi.csv')
def json2csv(data,filename):new_list = []with open(filename,'w',encoding='utf-8')as f:item_list=json.loads(data.decode('utf-8')) #反序列化item_list.pop('errno') #先删除第一个没用的键值对num=len(item_list['data']) #计算item_list里面的列表长度i=0while i<num:new_list.append(item_list['data'][i]) #这里的目的是把item_list里面key‘data’去掉print(item_list['data'][i])i=i+1print(new_list)w = csv.writer(f)filenames=new_list[0].keys() #取出key作为csv文件的表头for row in new_list:w.writerow(filenames)w.writerow(row.values())

该处使用的url网络请求的数据。


总结

如果直接在json格式中进行values遍历的话会报错超出范围,在试了多种方法之后都不行,到最后发现这个方法可行,迫不及待的发出来分享给大家,文末大佬们有没有什么更好的办法,小白实在是想不出来其他办法了。还请多多指教@json格式转csv文件

json格式转csv文件相关推荐

  1. python json格式和csv文件转换

    python json格式和csv文件转换 上代码 1 import csv 2 import json 3 4 ''' 5 json格式示例 6 [{ "firstName":& ...

  2. python文件写入字典格式输出_Python把对应格式的csv文件转换成字典类型存储脚本的方法...

    该脚本是为了结合之前的编写的脚本,来实现数据的比对模块,实现数据的自动化!由于数据格式是定死的,该代码只做参考,有什么问题可以私信我! CSV的数据格式截图如下: readDataToDic.py源代 ...

  3. Python把对应格式的csv文件转换成字典类型存储脚本的方法_python_脚本之家

    该脚本是为了结合之前的编写的脚本,来实现数据的比对模块,实现数据的自动化!由于数据格式是定死的,该代码只做参考,有什么问题可以私信我! CSV的数据格式截图如下: readDataToDic.py源代 ...

  4. excel文件批量转换格式为csv文件,并合并成一个csv

    一.excel文件批量转换格式为csv文件 1. 打开一个Excel工具,查看菜单中是否有[开发工具],如果没有,需要手动添加该工具.具体步骤如下,通过[文件]->[选项],弹出Excel选项对 ...

  5. 对Yelp dataset 中的数据进行json格式转csv操作

    Yelp dataset原始数据集下载地址为:https://www.yelp.com/dataset/documentation/main 本人用到的两个数据集为yelp_photos.tar和ye ...

  6. java json csv_彻底理解使用JavaScript 将Json数据导出CSV文件

    前言 将数据报表导出,是web数据报告展示常用的附带功能.通常这种功能都是用后端开发人员编写的.今天我们主要讲的是直接通过前端js将数据导出Excel的CSV格式的文件. 原理 首先在本地用Excel ...

  7. python文件存储为json格式_python 储存文件json

    许多程序要求用户输入某些信息,例如存储游戏偏好或提供要可视化的数据.不管程序关注的是什么,程序都要将将用户提供的信息存储在列表.字典等数据结构中.当用户关闭程序时,几乎总是需要保存他们提供的信息:一个 ...

  8. 如何在json格式上传文件?

    按照以前的前端编写很多都是form-data格式,现在json格式越来越流行,但是在某一方面也体现json的不足,那就是文件上传问题: 后端配置: 入参是有@RequestBody注解作为json格式 ...

  9. MATLAB怎么使用table格式读取csv文件并画图

    MATLAB中新增了一个table类型,可以很方便的读取文件中的数据,在使用这个格式的时候会默认把读取文件的第一行设置为标题,访问的时候需要通过索引值进行访问,具体怎么操作通过一个MATLAB例子进行 ...

最新文章

  1. Django视图之介绍、项目准备、URL、路由命名、reverse反解析和Postman测试
  2. python 异常分类_python的异常处理
  3. Spring AOP里面的几个名词
  4. what to try on on idiscover?
  5. 利用python爬虫(part13)--requests模块之requests.get的参数们
  6. Python实现中文分词--正向最大匹配和逆向最大匹配
  7. Android启动后icon应用图标不能显示的可能问题
  8. JAVA简单的SWING及AWT
  9. 5岁儿童自学python编程-为什么外国5岁孩子就要学编程?原因你一定想知道
  10. vagrant:修改Linux网络设置
  11. PCIe总线协议概述
  12. Graphics.DrawLine 方法
  13. 微信朋友圈评论功能的实现步骤
  14. HTMLifier将scratch游戏打包为html文件
  15. boost之lexical_cast使用
  16. 开发步骤_APP开发和上市的步骤
  17. yxy小菊蒻的201130总结
  18. js针对禁用ie浏览器(包括ie11)在内打开网页弹窗提示更好的体验解决方案
  19. less中的变量 单位问题
  20. 2013-10 阿丹励志笔记(1)

热门文章

  1. 通过PS制作逼真的光的效果
  2. 基本使用-ElasticSearch
  3. PyCharm统一中文字体
  4. Excel之筛选与高级筛选
  5. 《游戏引擎架构》笔记二
  6. SQL注入原理-布尔盲注
  7. js在函数外部调用局部变量的方法
  8. Gazebo学习--第二讲:构建一个简单模型
  9. CSGO由于电脑下载了easyconnect打不开了怎么办?
  10. FireFox 火狐主页被劫持