首页 > 其他分享 >CSV、XML、JSON三种形式进行存储并读取

CSV、XML、JSON三种形式进行存储并读取

时间:2024-10-13 20:59:15浏览次数:7  
标签:XML csv 读取 算式 json filename JSON expressions CSV

下面是一个完整的 Python 示例代码,它可以生成简单的算式(加法、减法、乘法、除法),并将生成的算式和习题长期保存到 CSV、XML 和 JSON 三种格式中。代码包括生成算式的功能,以及将数据保存和读取的功能。

1. 代码实现

python
import csv
import json
import xml.etree.ElementTree as ET
import random
import os

# 生成算式
def generate_expressions(num_expressions=10):
    operations = ['+', '-', '*', '/']
    expressions = []
    
    for _ in range(num_expressions):
        num1 = random.randint(1, 100)
        num2 = random.randint(1, 100)
        operation = random.choice(operations)
        
        # 避免除以零
        if operation == '/' and num2 == 0:
            num2 += 1
        
        expression = f"{num1} {operation} {num2}"
        expressions.append(expression)
    
    return expressions

# 保存为 CSV 文件
def save_to_csv(expressions, filename='expressions.csv'):
    with open(filename, mode='w', newline='') as file:
        writer = csv.writer(file)
        writer.writerow(['Expression'])
        for expr in expressions:
            writer.writerow([expr])

# 保存为 JSON 文件
def save_to_json(expressions, filename='expressions.json'):
    with open(filename, 'w') as file:
        json.dump({'expressions': expressions}, file)

# 保存为 XML 文件
def save_to_xml(expressions, filename='expressions.xml'):
    root = ET.Element('Expressions')
    for expr in expressions:
        item = ET.SubElement(root, 'Expression')
        item.text = expr
    
    tree = ET.ElementTree(root)
    tree.write(filename)

# 读取 CSV 文件
def read_from_csv(filename='expressions.csv'):
    with open(filename, mode='r') as file:
        reader = csv.reader(file)
        next(reader)  # 跳过表头
        return [row[0] for row in reader]

# 读取 JSON 文件
def read_from_json(filename='expressions.json'):
    with open(filename, 'r') as file:
        data = json.load(file)
    return data['expressions']

# 读取 XML 文件
def read_from_xml(filename='expressions.xml'):
    tree = ET.parse(filename)
    root = tree.getroot()
    return [elem.text for elem in root.findall('Expression')]

# 主程序
if __name__ == "__main__":
    num_expressions = 10  # 生成10个算式
    expressions = generate_expressions(num_expressions)

    # 保存到不同格式的文件
    save_to_csv(expressions)
    save_to_json(expressions)
    save_to_xml(expressions)

    # 读取并打印保存的数据
    print("From CSV:", read_from_csv())
    print("From JSON:", read_from_json())
    print("From XML:", read_from_xml())

2. 代码说明

  • 生成算式:使用 generate_expressions 函数生成指定数量的随机算式。
  • 保存功能
    • save_to_csv: 将算式保存为 CSV 格式。
    • save_to_json: 将算式保存为 JSON 格式。
    • save_to_xml: 将算式保存为 XML 格式。
  • 读取功能
    • read_from_csv: 从 CSV 文件读取算式。
    • read_from_json: 从 JSON 文件读取算式。
    • read_from_xml: 从 XML 文件读取算式。
  • 主程序:生成算式,保存到三种格式的文件,并读取并打印保存的数据。

3. 运行代码

确保在您的 Python 环境中安装了必要的库,然后运行上述代码。它会生成随机算式,并将其保存到三个不同的文件中,然后读取这些文件并打印内容。

4. 依赖库

该代码使用 Python 的标准库,不需要安装任何额外的依赖。您可以在任何支持 Python 的环境中直接运行。

标签:XML,csv,读取,算式,json,filename,JSON,expressions,CSV
From: https://www.cnblogs.com/cor0000/p/18462970

相关文章

  • xml转YOLO的txt格式(一次必成版!)
    废话少说,直接上干货!首先,我先介绍一下代码的使用,编程语言为“Python”,共有三处需按照自己的需求修改的,我都放在代码最下面了。xml_root_path:输入你的xml格式的文件存放位置,建议全部用绝对路径txt_save_path:输入你的txt格式的文件导出后的存放位置classes_path:输入你的label......
  • golang从http请求中读取xml格式的body,并转成json
    推荐学习文档golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔记专栏文章目录以下是在Go语言中从HTT......
  • vue中上传xlsx表格文件,并获取文件json数据【前端文件上传】
    import*asXLSXfrom"xlsx";onMounted(function(){document.getElementById('fileInput').addEventListener('change',function(){constfileObj=this.files[0]//console.log(fileObj)//......
  • save data to csv
     //elapse.h#ifndef__ELAPSE_MILLSEC_H__#define__ELAPSE_MILLSEC_H__//#include<iostream>#include<chrono>#include<iomanip>//用于设置输出流的格式usingnamespacestd;//计算耗时classElapseMillsec{public:ElapseMillsec(std::s......
  • 软件构造,生成算式采用CSV、XML、JSON三种形式进行存储并读取。
    编写代码完成将生成的算式及习题长期保存下来,采用CSV、XML、JSON三种形式进行存储并读取。提交相关代码及运行截图。importrandomimportcsvimportjsonimportxml.etree.ElementTreeasETfromxml.domimportminidom#生成随机算式数据defgenerate_exercises(count......
  • C# 后端回传的Json数据转换为实体对象转换器JsonConverter的使用
    publicclassJsonDateTimeConverter:JsonConverter<DateTime?>{privatereadonlystring_dateTimeFormat;publicJsonDateTimeConverter(stringdateTimeFormat){_dateTimeFormat=dateTimeFormat;}publicoverridevoidWri......
  • vscode调试launch.json
    {//使用IntelliSense了解相关属性。//悬停以查看现有属性的描述。//欲了解更多信息,请访问:https://go.microsoft.com/fwlink/?linkid=830387"version":"0.2.0","configurations":[{"name":"Python:......
  • JWT(JSON Web Token)、Token、Session和Cookie
    JWT(JSONWebToken)、Token、Session和Cookie都是Web开发中常用的概念,它们各自在不同的场景下发挥着重要的作用。以下是对这四个概念的详细解释和比较:一、JWT(JSONWebToken)定义:JWT是一个紧凑的、自包含的用于双方之间安全传输信息的JSON对象。它通过将Token划分为头部(Header......
  • 函数、匿名,箭头函数、对象、内置方法(日期和时间)、JSON对象,正则对象、Math对象
    【一】函数【1】函数的语法格式function函数名(参数){代码体}function函数名(形参,形参,形参...){函数体代码}【2】函数的调用函数名+()函数调用时,会立即执行,代码体里面的代码可以多次调用,每次调用是独立不相关的函数的执行跟定义位置无关,只与调用的位置有关。......
  • 多层嵌套json字符串(jsonStr)写入redis
    1、连接redisJedisjedis=newJedis("localhost",6379);2、将字符串转为json格式JSONObjectjs=JSONObject.fromObject(jsonStr);3、对json格式进行解析4、将json写入redispublicstaticvoidRedisSet(JSONObjectjs,Jedisjs01){//获取json中的所有key......