西南科技大学 Python程序设计 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 csv
import json

#读取文件
with open('movie.in', 'r', encoding='utf-8') as f:
    data = f.read()
#把movie.in文件转换为movie.csv文件
with open('movie.csv', 'w', encoding='utf-8') as f:
    f.write(data)
#读取csv文件
with open('movie.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    #第一行是key。后面的每一行是各自的value
    keys = next(reader)
    rows = [dict(zip(keys, row)) for row in reader]
#将list转换为json格式
with open('movie.json', 'w', encoding='utf-8') as f:
    json.dump(rows, f, ensure_ascii=False, indent=4)
#json文件存到moive.out文件中
with open('movie.json', 'r', encoding='utf-8') as f:
    data = f.read()
with open('movie.out', 'w', encoding='utf-8') as f:
    f.write(data)

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值