zoukankan      html  css  js  c++  java
  • Python中如何将数据存储为json格式的文件

    一、基于json模块的存储、读取数据

    names_writer.py

    1 import json
    2 
    3 names = ['joker','joe','nacy','timi']
    4 
    5 filename='names.json'
    6 with open(filename,'w') as file_obj:
    7     json.dump(names,file_obj)

    解释:我们先导入json模块,再创建一个名字列表,第5行我们指定了要将该列表存储到其中的文件的名称。通常使用扩展名.json来指出文件存储的数据为json格式。第6行我们以写入模式打开文件,第7行我们使用函数json.dump()将名字列表存储到文件names.json 中。此程序在执行之后控制台没有打印任何东西,其实我们也可以在后面打印一句类似成功的提示语句,但此处我就省略了。

    我们看下names_writer.py 所在文件夹下的names.json文件(tips:如果文件夹下不存在此文件会自动创建并写入数据),names.json 中的内容如下:

    ["joker", "joe", "nacy", "timi"]

    下面编写读取此json文件的程序:

    names_reader.py

    1 import json
    2 
    3 
    4 
    5 filename='names.json'
    6 with open(filename) as file_obj:
    7     names = json.load(file_obj)
    8     
    9 print(names)

    控制台打印如下:

    解释:读取操作,同样需要导入json模块,第6行代码我们使用读取模式打开文件,第7行,我们使用函数json.load() 来读取names.json 中的信息,并将其存储到变量names中,最后将其打印。打印结果与我们存储时是一样的。json文件你也可以共享给其他人,其他人就可以读取其中的数据了,这是一种程序间共享数据的简单方式。

    我们来用以上的知识解决下具体的问题。 

    问题:编写一个程序,提示用户输入他喜欢的水果,并使用json.dump() 将这个水果名存储到文件中。再编写一个程序,从文件中读取这个值,并打印消息 “I know your favorite fruit !  It's _____ .”。

    favorite.py

    1 import json
    2 
    3 filename = "favorite_fruit.json"
    4 
    5 fruit = input( "What is your favorite fruit?")
    6 with open(filename,'w') as file_obj:
    7     json.dump(fruit,file_obj)

    控制台打印如下:

    reader_favorite.py

    1 import json
    2 
    3 file_name = "favorite_fruit.json"
    4 with open(file_name) as file_obj:
    5     fruit = json.load(file_obj)
    6 
    7 print("I know your favorite fruit !  It's " + fruit)

    控制台打印如下:

    可以看到程序是可以正常运行的。说明我们编写的程序按正常操作运行是没有问题的。下一篇,我们重构这个例子,使之更完善。

      走入社会之后,什么都可以先不学,但一定要学会理财,并且将之变成一个终身习惯。

  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/tizer/p/11067098.html
Copyright © 2011-2022 走看看