第四十二回 假李逵翦径劫单身 黑旋风沂岭杀四虎-python读写csv和json数据

李逵答应了宋江三件事:不可吃酒,独自前行,不带板斧。李逵痛快答应了,挎一口腰刀,提着朴刀,带了一锭大银子,三五个小银子就下山去了。

宋江放心不下,于是请同乡朱贵也回家一趟,好打探李逵的信息。朱贵到了沂水县西门外,见李逵站在通缉宋江、戴宗和李逵的榜单前面,赶快把李逵给拉走了。

李逵和朱贵在朱富的店里吃饭休息,五更天,李逵出发。朱贵建议他走大路,李逵说“我怕甚鸟”,于是走了小路。

李逵碰到了假李逵劫道,刚开始发善心放了他。结果后来发现他撒谎且还想害李逵,被李逵把他杀掉,房子也烧了。

李逵背着娘回梁山,还是走的深山僻静小路,半路老娘口渴,李逵打水回来,发现老娘已经被老虎吃了。李逵气的把一窝老虎四只全杀了。猎户们见李逵杀死了四只老虎,都很高兴,请李逵到曹太公庄上喝酒。

李逵一人杀四虎,跟武松打虎相比,得益于有好武器的加持。python里有专门的csv和json处理模块,可以极大提高数据处理的效率。

python读写csv和json数据

python读写csv数据

在Python中,读写CSV(Comma Separated Values)数据通常使用内置的csv模块。以下是一个简单的例子,展示了如何使用csv模块来读取和写入CSV文件。 首先,假设我们有一个名为example.csv的文件,内容如下:

name,age,city
Alice,28,New York
Bob,22,Los Angeles
Charlie,30,Chicago

读取CSV文件

import csv  # 打开CSV文件并读取内容  
with open('example.csv', mode='r', newline='') as file:  reader = csv.reader(file)  # 遍历CSV文件的每一行  for row in reader:  print(row)  # 打印每一行的内容,作为列表  # 输出:  
# ['name', 'age', 'city']  
# ['Alice', '28', 'New York']  
# ['Bob', '22', 'Los Angeles']  
# ['Charlie', '30', 'Chicago']

写csv文件

import csv  # 定义要写入的数据  
data = [  ['name', 'age', 'city'],  ['Alice', '28', 'New York'],  ['Bob', '22', 'Los Angeles'],  ['Charlie', '30', 'Chicago']  
]  # 打开(或创建)一个CSV文件并写入数据  
with open('output.csv', mode='w', newline='') as file:  writer = csv.writer(file)  # 写入CSV文件的每一行  for row in data:  writer.writerow(row)  # 现在,'output.csv' 文件包含了和上面例子中一样的数据

在上面的例子中,csv.reader用于读取CSV文件,而csv.writer用于将数据写入CSV文件。open函数用于打开文件,并指定模式('r'用于读取,'w'用于写入)。newline=''参数在写入时非常有用,它确保了在不同的操作系统上都能正确地写入行。

csv.reader返回的是一个迭代器,它会产生CSV文件的每一行,每一行都是一个字符串列表。而csv.writer的writerow方法则用于将一个列表作为一行写入CSV文件。

记住,CSV文件只是一个简单的文本文件,其中的数据由逗号分隔。你可以使用任何文本编辑器来查看或编辑它。同时,csv模块也支持其他分隔符,如制表符,你可以通过传递delimiter参数来指定。

 

Python读写JSON数据

JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,易于阅读和编写。虽然它最初是为JavaScript设计的,但由于其简单性和普遍性,它已经被许多其他编程语言广泛采用,包括Python。在Python中,json模块使得处理JSON数据变得非常简单。

JSON数据结构

JSON主要支持两种数据结构,对象和数组,在python中对应字典和列表,比如:

对象、字典(dict):这是一种无序的键值对集合使用大括号,格式如下:

    {  "name": "Zhangsan",  

        "age": 30,  

        "city": "New York"  }

数组、列表:这是一个有序的值列表,使用方括号[]表示:

[ "apple",  

  "banana",  

  "cherry"  ]

编解码

编码:Python对象到JSON

使用json.dumps()函数,可以将Python对象(如字典或列表)转换为JSON格式的字符串。

解码:JSON到Python对象

使用json.loads()函数,可以将JSON格式的字符串转换为Python对象(如字典或列表)

python处理json举例

import json
json_string = '{"name": "Zhangsan", "age": 30, "city": "Jining"}'  # 使用json.loads()函数来解析这个json字符串  
json_data = json.loads(json_string)  
# 使用json.dumps()函数来将pyhton对象转回json字符串  
json_data_string = json.dumps(json_data)# 观察每一步的数据类型,可以发现对json_string先解析再dump,最终得到的字符串跟原字符串相等。
print("json编码的原字符串:", type(json_string), json_string)
print("json解析后:", type(json_data), json_data)
print("json转换回原字符串:", type(json_data_string), json_data_string)
print("json解析再转回原json字符串:", json_string == json_data_string)

json文件读取


json模块还可以直接从文件读取JSON数据或将JSON数据写入文件。

# 写到文件
with open('data.json', 'w') as f:json.dump(json_data, f)# 打开并读取JSON文件  
with open('data.json', 'r') as f:  readjsondata = json.load(f)  # 现在,`readjsondata`变量包含了JSON文件中的数据,可以像操作Python字典一样操作它  
print(type(readjsondata), readjsondata)

众人都来看虎,那假李逵的老婆正好也在,于是告知了曹太公和里正,大家决定一边劝醉李逵,一边上报县里。

县里派了都头李云来拿李逵,李云是朱富的师傅。返回县里的时候,朱富和朱贵用蒙汗药迷倒了他们,李逵把除李云外的人都杀了,然后李逵和朱富在路边等李云来。

欲知后事如何,且听下回分解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/697524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arcgisPro制图输出

1、设置地图底图 2、导入数据 3、 设置图形颜色,如下:右键“浙江省”数据层,选择符号系统 4、在右侧可看到打开的符号系统栏,进行如下设置: 5、移除“其他所有值”项,如下: 6、设置图形轮廓,如下…

【MATLAB】CEEMD_ MFE_SVM_LSTM 神经网络时序预测算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 CEEMD_MFE_SVM_LSTM神经网络时序预测算法是一种结合了多种先进技术的复杂预测方法,旨在提高时序预测的准确性和稳定性。下面是对该算法的详细介绍: CEEMD&#xff…

ES项目应用

配置: ES存储了2-3亿条,几百GB ES集群有5 个节点 2主2副 ES返回数据量窗口大小设置 index.max_result_window 深度翻页 1.from size 方式 2.scroll相当于维护了一份当前索引段的快照信息,这个快照信息是你执行这个scroll查询时的快照。在这个查询后的任…

kali虚拟机桥接模式快速设置

第一步:选择 虚拟机 > 设置 > 虚拟机设置,设置桥接模式 不选择复制物理网络连接状态选项: 如果采用DHCP的方式来分配IP地址,当电脑网络从有线或无线网络之间进行移动时,DHCP会重新分配ip地址,即虚拟机…

泰迪智能科技大模型数据智能实验室

自2022年11月ChatGPT问世以来,大模型开始备受关注,科技巨头们纷纷推出大模型实验室解决方案。大模型的价值不知在于互联网场景,而在于大模型能力垂直化,能够与具体的业务需求深度融合。 大模型实验室是在学校现有的实验室建设基础…

leetcode hot100 买卖股票的最佳时机1

本题之前采用贪心算法来解决,现在可以采用动态规划来解决,通过dp数组记录每次的状态从而获取到最大的利润。 这里dp数组定义为二维数组 dp[price.length][2],其中price.length表示第i天,[2]其中有0/1两种状态,[0]表示…

六、回归与聚类算法 - 欠拟合和过拟合

目录 1、定义 2、原因及解决方法 2.1 正则化 线性回归欠拟合与过拟合线性回归的改进 - 岭回归分类算法:逻辑回归模型保存与加载无监督学习:K-means算法 1、定义 2、原因及解决方法 2.1 正则化

电路设计(26)——速度表的multisim仿真

1.设计要求 设计一款电路,能够实时显示当前速度。 用输入信号模拟行驶的汽车,信号频率的1hz代表汽车速度的1m/s。最后速度显示,以km/h为单位。 2.电路设计 当输入信号频率为40HZ时,显示的速度应该为144KM/h,仿真结果为…

HTTP基本概念-HTTP 常见的状态码有哪些?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 常见的状态码有哪些? 1xx 类状态码属于提示信息,是协议处理中的一种中间状态,实际用到的比较少。 2xx 类状态码表示服务器成功处理了客户端的请求,也是我们最愿…

第一个 Angular 项目 - 添加服务

第一个 Angular 项目 - 添加服务 这里主要用到的内容就是 [Angular 基础] - service 服务 提到的 前置项目在 第一个 Angular 项目 - 动态页面 这里查看 想要实现的功能是简化 shopping-list 和 recipe 之间的跨组件交流 回顾一下项目的结构: ❯ tree src/app/…

Linux freezer机制

一、概述 系统进入suspended或进程被加入到cgroup冻结或解冻分组,用户进程和部分内核线程被冻结后,会剥夺执行cpu资源,解冻或唤醒后恢复正常。 二、进程冻结与解冻原理 2.1 进程冻结 用户进程和内核线程冻结的基本流程: 内核态…

2024开年,手机厂商革了自己的命

文|刘俊宏 编|王一粟 2024开年,AI终端的号角已经由手机行业吹响。 OPPO春节期间就没闲着,首席产品官刘作虎在大年三十就迫不及待地宣布,OPPO正式进入AI手机时代。随后在开年后就紧急召开了AI战略发布会,…

GaussDB SQL调优:建立合适的索引

背景 GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品具备企业级复杂事务混合负载能力,同时支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000扩展能力,PB级海量存储等企业级数据库…

昨天Google发布了最新的开源模型Gemma,今天我来体验一下

前言 看看以前写的文章,业余搞人工智能还是很早之前的事情了,之前为了高工资,一直想从事人工智能相关的工作都没有实现。现在终于可以安静地系统地学习一下了。也是一边学习一边写博客记录吧。 昨天Google发布了最新的开源模型Gemma&#xf…

电商数据采集的几个标准

面对体量巨大的电商数据,很多品牌会选择对自己有用的数据进行分析,比如在控价过程中,需要对商品的价格数据进行监测,或者是需要做数据分析时,则需要采集到商品的价格、销量、评价量、标题、店铺名等信息,数…

Unity中.Net与Mono的关系

什么是.NET .NET是一个开发框架,它遵循并采用CIL(Common Intermediate Language)和CLR(Common Language Runtime)两种约定, CIL标准为一种编译标准:将不同编程语言(C#, JS, VB等)使用各自的编译器,按照统…

JavaScript 原始值和引用值在变量复制时的异同

相比于其他语言,JavaScript 中的变量可谓独树一帜。正如 ECMA-262 所规定的,JavaScript 变量是松散类型的,而且变量不过就是特定时间点一个特定值的名称而已。由于没有规则定义变量必须包含什么数据类型,变量的值和数据类型在脚本…

【Python笔记-设计模式】原型模式

一、说明 原型模式是一种创建型设计模式, 用于创建重复的对象,同时又能保证性能。 使一个原型实例指定了要创建的对象的种类,并且通过拷贝这个原型来创建新的对象。 (一) 解决问题 主要解决了对象的创建与复制过程中的性能问题。主要针对…

redhawk:使用ipf文件反标instance power

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 往期文章链接: Redhawk:Input Data Preparation 使用ptpx和redhawk报告功耗时差别总是很大,如果需要反标top/block的功耗值可以在gsr文件中使用BLOCK_POWER_FOR_SCALING的命令

Verilog刷题笔记35

题目: Create a 1-bit wide, 256-to-1 multiplexer. The 256 inputs are all packed into a single 256-bit input vector. sel0 should select in[0], sel1 selects bits in[1], sel2 selects bits in[2], etc. 解法: module top_module( input [255:…