当前位置: 首页 > news >正文

派森 #P128. csv存json格式

描述

编写一个 Python 程序,读取movie.in(csv格式,utf-8编码) 的数据,将数据转成保存到movie.out(接送格式,utf-8编码)文件中。

格式

输入

movie.in文件,测试格式,utf-8编码。

输出

movie.out,json格式,utf-8编码

样例

输入

movie.in

输出

moive.out

输出文件格式

[{"片名": "肖申克的救赎","上映年份": "1994","评分": "9.7","评价人数": "2317937","导演": "弗兰克·德拉邦特","编剧": "弗兰克·德拉邦特 / 斯蒂芬·金","主演": "蒂姆·罗宾斯 / 摩根·弗里曼 / 鲍勃·冈顿 / 威廉姆·赛德勒 / 克兰西·布朗 / 吉尔·贝罗斯 / 马克·罗斯顿 / 詹姆斯·惠特摩 / 杰弗里·德曼 / 拉里·布兰登伯格 / 尼尔·吉恩托利 / 布赖恩·利比 / 大卫·普罗瓦尔 / 约瑟夫·劳格诺 / 祖德·塞克利拉 / 保罗·麦克兰尼 / 芮妮·布莱恩 / 阿方索·弗里曼 / V·J·福斯特 / 弗兰克·梅德拉诺 / 马克·迈尔斯 / 尼尔·萨默斯 / 耐德·巴拉米 / 布赖恩·戴拉特 / 唐·麦克马纳斯","类型": "剧情 / 犯罪","国家/地区": "美国","语言": "英语","时长(分钟)": "142"},{"片名": "霸王别姬","上映年份": "1993","评分": "9.6","评价人数": "1720638","导演": "陈凯歌","编剧": "芦苇 / 李碧华","主演": "张国荣 / 张丰毅 / 巩俐 / 葛优 / 英达 / 蒋雯丽 / 吴大维 / 吕齐 / 雷汉 / 尹治 / 马明威 / 费振翔 / 智一桐 / 李春 / 赵海龙 / 李丹 / 童弟 / 沈慧芬 / 黄斐 / 徐杰","类型": "剧情 / 爱情 / 同性","国家/地区": "中国","语言": "汉语普通话","时长(分钟)": "171"},略...
]

代码:

import json
fr = open('movie.in', 'r', encoding='utf-8')
fw = open('movie.out', 'w', encoding='utf-8')
lst = []
for line in fr:line = line.replace("\n", "")lst.append(line.split(","))
fr.close()
for i in range(1, len(lst)):lst[i] = dict(zip(lst[0], lst[i]))
json.dump(lst[1:], fw, indent=4, ensure_ascii=False)
fw.close()

代码解析:

  1. import json:导入JSON模块,用于处理JSON格式的数据。
  2. fr = open('movie.in', 'r', encoding='utf-8'):打开名为'movie.in'的文件,以只读模式读取('r'),使用UTF-8编码(encoding='utf-8'),并将文件对象赋值给变量fr
  3. fw = open('movie.out', 'w', encoding='utf-8'):打开名为'movie.out'的文件,以写入模式('w'),使用UTF-8编码(encoding='utf-8'),并将文件对象赋值给变量fw
  4. lst = []:创建一个空列表lst,用于存储读取的数据。
  5. for line in fr::遍历文件对象fr中的每一行数据,并将每一行赋值给变量line
  6. line = line.replace("\n", ""):使用字符串的replace()方法将每一行末尾的换行符"\n"替换为空字符串"",去除换行符。
  7. lst.append(line.split(",")):使用字符串的split()方法按逗号","将每一行分割成多个部分,并将分割后的结果作为列表添加到lst中。例如,如果一行是"电影1,导演1,主演1",则会变成列表["电影1", "导演1", "主演1"]。
  8. fr.close():关闭文件fr
  9. for i in range(1, len(lst))::遍历列表lst中从索引1开始到最后的部分。这里通过range()函数生成一个范围,从1到len(lst)(列表长度)。
  10. lst[i] = dict(zip(lst[0], lst[i])):使用zip()函数将第一个元素和当前元素对应的部分打包成一个元组,然后使用dict()函数将元组转换为字典。将转换后的字典赋值给列表lst中当前的元素,实现将每一行的数据与第一行(即表头)对应起来,形成键值对的结构。
  11. json.dump(lst[1:], fw, indent=4, ensure_ascii=False):使用JSON模块的dump()函数将列表lst中从索引1开始到最后的部分转换为JSON格式,并将结果写入到文件fw中。参数indent=4指定缩进为4个空格,ensure_ascii=False表示不对非ASCII字符进行转义。
  12. fw.close():关闭文件fw

功能是读取名为'movie.in'的文件中的数据,将其中的每一行按逗号分割成多个部分,并将每一行数据与第一行(表头)对应起来形成键值对的结构。然后将转换后的数据以JSON格式写入到名为'movie.out'的文件中。

相关文章:

派森 #P128. csv存json格式

描述 编写一个 Python 程序,读取movie.in(csv格式,utf-8编码) 的数据,将数据转成保存到movie.out(接送格式,utf-8编码)文件中。 格式 输入 movie.in文件,测试格式,utf-8编码。 …...

iPhone开启“轻点唤醒”功能但点击屏幕无反应怎么解决?

iPhone的“轻点唤醒”功能启用时,用户只需手指轻触或点击手机屏幕即可快速唤醒设备,无需按压任何按钮。然而,有些用户在使用“轻点唤醒”功能唤醒屏幕时,遇到该功能失灵,无法正常唤醒屏幕的情况,这是怎么回…...

论AI与大数据之间的关系

前言 在21世纪,"AI"和"大数据"已经成为科技领域的热门词汇。它们不仅是创新的代名词,更是现代技术发展的双翼。然而,很多人对于AI与大数据之间的关系仍然停留在表面的理解。本文旨在深入探讨这两者之间的深厚关系&#…...

6.ES基础概念及术语详细解读

一、Elasticsearch概述: ES是基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全问搜索引擎,且ES支持RestFulweb风格的url访问。ES是基于Java开发的开源搜索引擎,设计用于云计算,能够达到实时搜索,…...

大语言模型微调实践——LoRA 微调细节

1. 引言 近年来人工智能领域不断进步,大语言模型的崛起引领了自然语言处理的革命。这些参数量巨大的预训练模型,凭借其在大规模数据上学习到的丰富语言表示,为我们带来了前所未有的文本理解和生成能力。然而,要使这些通用模型在特…...

国内ChatGPT对比与最佳方案

很久没写内容了,主要还是工作占据了太多时间。简单分享下我这段时间的研究吧,由于时间仓促,有很多内容没有具体写,请自行到我分享的网站体验查看。 前言 ChatGPT 的出现确实在很大程度上改变了世界。许多人已经亲身体验到了ChatGPT作为一个…...

绝美的古诗词AI作画,惊艳到我了!

前言 时光荏苒,科技的飞速发展催生出了许多令人惊叹的创新成果。近年来,人工智能技术在艺术领域的应用日益引人注目,其中最为引人瞩目的莫过于AI作画。这项技术将传统的古诗词与现代的人工智能相结合,创造出一幅幅令人叹为观止的…...

数据结构—排序

8.排序 8.1排序的概念 什么是排序? 排序:将一组杂乱无章的数据按一定规律顺序排列起来。即,将无序序列排成一个有序序列(由小到大或由大到小)的运算。 如果参加排序的数据结点包含多个数据域,那么排序往…...

GraphScope,开源图数据分析引擎的领航者

文章首发地址 GraphScope是一个开源的大规模图数据分析引擎,由Aliyun、阿里巴巴集团和华为公司共同开发。GraphScope旨在为大规模图数据处理和分析提供高性能、高效率的解决方案。 Github地址: https://github.com/alibaba/GraphScope GraphScope 的重…...

【Linux】邮件服务器搭建 postfix+dovecot+mysql (终极版 超详细 亲测多遍无问题)

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录 前言基础原理准备工作一 、安装关于权…...

GitLab与GitLab Runner安装(RPM与Docker方式),CI/CD初体验

背景 GitLab 是一个强大的版本控制系统和协作平台,记录一下在实际工作中关于 GitLab 的安装使用记录。 一开始使用 GitLab 时,是在 CentOS7 上直接以 rpm 包的方式进行安装,仅作为代码托管工具来使用,版本: 14.10.4 …...

vue3+element下拉多选框组件

<!-- 下拉多选 --> <template><div class"select-checked"><el-select v-model"selected" :class"{ all: optionsAll, hidden: selectedOptions.data.length < 2 }" multipleplaceholder"请选择" :popper-app…...

Python科研绘图--Task02

目录 图形元素 画布 (fifigure)。 坐标图形 (axes)&#xff0c;也称为子图。 轴 (axis) &#xff1a;数据轴对象&#xff0c;即坐标轴线。 刻度 (tick)&#xff0c;即刻度对象。 图层顺序 轴比例和刻度 轴比例 刻度位置和刻度格式 坐标系 直角坐标系 极坐标系 地理…...

[保研/考研机试] KY11 二叉树遍历 清华大学复试上机题 C++实现

题目链接&#xff1a; 二叉树遍历_牛客题霸_牛客网编一个程序&#xff0c;读入用户输入的一串先序遍历字符串&#xff0c;根据此字符串建立一个二叉树&#xff08;以指针方式存储&#xff09;。题目来自【牛客题霸】https://www.nowcoder.com/share/jump/43719512169254700747…...

【官方中文文档】Mybatis-Spring #简介

简介 什么是 MyBatis-Spring&#xff1f; MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中&#xff0c;创建映射器 mapper 和 SqlSession 并注入到 bean 中&#xff0c;以及将 Mybatis 的异常转换为 Spring 的…...

稳定扩散ControlNet v1.1 权威指南

ControlNet 是一种稳定扩散模型&#xff0c;可让你从参考图像中复制构图或人体姿势。 经验丰富的稳定扩散用户知道生成想要的确切成分有多难。图像有点随机。你所能做的就是玩数字游戏&#xff1a;生成大量图像并选择你喜欢的图片。 借助 ControlNet&#xff0c;稳定扩散用户…...

【golang】结构体及其方法的使用(struct)

函数是独立的程序实体。我们可以声明有名字的函数&#xff0c;也可以声明没名字的函数&#xff0c;还可以把它们当做普通的值传来传去。我们能把具有相同签名的函数抽象成独立的函数类型&#xff0c;以作为一组输入、输出&#xff08;或者说一类逻辑组件&#xff09;的代表。 …...

【数据结构】-- 排序算法习题总结

排序 时间复杂度 空间复杂度 稳定性 冒泡排序 O(n^2) 优化后O(n) O(1) 稳定 快速排序 最好O(n*logn) 最坏O(n^2) 最好O(logn) 最坏O(n) 不稳定直接插入排序…...

第十章 CUDA流(stream)实战篇

cuda教程目录 第一章 指针篇 第二章 CUDA原理篇 第三章 CUDA编译器环境配置篇 第四章 kernel函数基础篇 第五章 kernel索引(index)篇 第六章 kenel矩阵计算实战篇 第七章 kenel实战强化篇 第八章 CUDA内存应用与性能优化篇 第九章 CUDA原子(atomic)实战篇 第十章 CUDA流(strea…...

如何进行电脑文件夹分类与整理?

本科电脑用了四年&#xff0c;毕业后发现空间很满&#xff0c;但是真正有用的东西仿佛就一点。好像是在学开发的时候&#xff0c;听到一个老师说&#xff0c;根目录不要放太多文件夹&#xff0c;不然就相当于没有根目录了。刚好研究生有了新的台式电脑&#xff0c;开始有规划的…...

LSPosed-Irena深度解析:Android运行时Hook框架的终极指南

LSPosed-Irena深度解析&#xff1a;Android运行时Hook框架的终极指南 【免费下载链接】LSPosed-Irena Useless LSPosed Framework Fork 项目地址: https://gitcode.com/gh_mirrors/ls/LSPosed-Irena 你是否曾想过&#xff0c;在不修改APK源代码的情况下&#xff0c;深度…...

计算机毕业设计springboot高校实验室安全巡检系统 基于SpringBoot的高校实验室智能安防监管平台 SpringBoot框架下高校实验楼安全隐患排查与预警系统

计算机毕业设计springboot高校实验室安全巡检系统4p1y5wo9 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着高等教育规模的持续扩张&#xff0c;高校实验室数量与类型日益增多…...

百川2-13B模型辅助C语言学习:从语法答疑到代码调试

百川2-13B模型辅助C语言学习&#xff1a;从语法答疑到代码调试 学C语言&#xff0c;尤其是刚入门那会儿&#xff0c;你是不是也经历过这样的时刻&#xff1f;面对指针、内存这些概念&#xff0c;感觉像在看天书&#xff1b;自己写的代码编译报错&#xff0c;满屏的红色提示让人…...

FRCRN命令行工具使用详解:从音频文件到降噪输出的完整流程

FRCRN命令行工具使用详解&#xff1a;从音频文件到降噪输出的完整流程 你是不是也遇到过这种情况&#xff1f;手头有一堆录音文件&#xff0c;背景里混杂着各种杂音——可能是空调的嗡嗡声、键盘的敲击声&#xff0c;或者是窗外的车流声。手动处理这些音频不仅费时费力&#x…...

手动侧开门款屏蔽箱 适用蓝牙 WIFI测试 无线测试屏蔽箱GX-5950A

GX-5950A屏蔽箱品名:屏蔽箱型号:GX-5950A一、主要功能及适用范围&#xff1a;1 该屏蔽箱适用于无线通讯测试、1 EMI测试、1 耦合测试、1 RF功能测试。适用于手机&#xff0c;平板计算机&#xff0c;蓝牙&#xff0c;wi-fi&#xff0c;天线等测试&#…...

ColorControl专业调校指南:从问题诊断到显示优化的参数配置全流程

ColorControl专业调校指南&#xff1a;从问题诊断到显示优化的参数配置全流程 【免费下载链接】ColorControl Easily change NVIDIA display settings and/or control LG TVs 项目地址: https://gitcode.com/gh_mirrors/co/ColorControl 一、问题诊断&#xff1a;你的显…...

别再折腾CUDA了!用Anaconda在Windows上一键搞定TensorFlow 2.5 GPU环境(附清华源配置)

告别CUDA版本地狱&#xff1a;Anaconda三分钟部署TensorFlow GPU全攻略 刚接触深度学习的开发者们&#xff0c;往往在第一步就被GPU环境配置劝退。CUDA与cuDNN的版本匹配问题像一道高墙&#xff0c;让无数Windows用户在TensorFlow门前徘徊。我曾见过同事花三天时间反复卸载重装…...

基于yz-bijini-cosplay的.NET应用开发:AI功能集成实践

基于yz-bijini-cosplay的.NET应用开发&#xff1a;AI功能集成实践 1. 为什么要在.NET应用里集成cosplay风格生成能力 最近有好几位做数字内容平台的朋友问我&#xff1a;“我们给动漫爱好者提供社区服务&#xff0c;能不能在自己的App里直接生成角色同款泳装或Cosplay造型&am…...

告别调包:手把手教你用PyTorch从零复现CRNN文本识别网络(附完整代码)

从零构建CRNN文本识别引擎&#xff1a;PyTorch实战指南与工业级优化技巧 在计算机视觉领域&#xff0c;文本识别技术正经历着从传统算法到深度学习的革命性转变。当我们谈论OCR&#xff08;光学字符识别&#xff09;时&#xff0c;CRNN&#xff08;卷积循环神经网络&#xff0…...

如何快速上手OneMore:OneNote插件的安装与基础设置教程

如何快速上手OneMore&#xff1a;OneNote插件的安装与基础设置教程 【免费下载链接】OneMore A OneNote add-in with simple, yet powerful and useful features 项目地址: https://gitcode.com/gh_mirrors/on/OneMore 想要提升OneNote的使用效率吗&#xff1f;OneMore插…...