By accessing the website and accepting the Cookie Policy, you agree to use the cookies provided by the Site in accordance with to analyze traffic, remember your preferences, and optimize your experience.
python文件操作与json格式转换
json    2020-04-10 10:58:09    364    0    0
emengweb   json

文件处理

使用文件可以做数据的持久化(本地化)。 包括数据库文件,txt、json,plist,二进制文件等等。
在python中的文件操作很简单,是通过一个内置函数open()实现的。

"""
open(file, mode='r', encoding=None, errors=None)
open函数主要接收两个参数,需要打开的文件file, 打开方式mode,encoding编码方式,
如果需要忽略少数的如编码之类的错误
可以传入errors="ignore"
w 以写方式打开, 文件不存在时创建新文件
a 以追加模式打开,文件不存在时创建新文件
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )
"""
f = open(r"./python招聘信息.txt","r",encoding="utf-8")
f.read() #以字符串的形式,一次性返回所有文件内容
f.readline() # 读一行,调用一次,读取一行
f.readlines() #返回一个列表,列表的元素是文件中每一行的内容
#f.write() 当以写的形式打开文件时,可以使用该方法,需要传入写入的内容
f.flush() #当需要更新文件的内容时,调用该方法刷新缓存,立即将数据写入文件
f.close() #关闭文件,如果需要向文件中写入内容,在没有flush方法时,调用次方法才能将内容写入

json数据转换

json数据本身是文本数据;json文件就是后缀是.json的文件, 并且文件内容必须满足json格式的要求

1.json格式
a.一个json对应一条数据
b.json中的数据必须是json对应的数据类型

数字类型(number) --> 所有的数字,包含整数和小数,例如:100, 12.5
字符串类型(string) --> 用双引号括其的数据,例如:"abc", "你好,世界!"
数组(array) --> 相当于python中列表, 例如: [100, 230, "abc", "你好"]
字典(dictionary) --> 相当于python中的字典, 例如:{"a": 100, "b":[1, 2, 3, 4, 5], "c":{}}
布尔 ---> true和false
null --> 相当于None, 用来表示空

2.python对json的支持
python中专门提供了一个json模块,用来处理json数据

load(json文件对象) ---> 将json文件的内容读出来,并且将内容转换成python对应的数据类型
dump(内容, json文件路径) --> 将指定的内容,以json格式写入到指定的json文件中

loads(json格式字符串) --> 将字符串内容是json数据的字符串转换成python对应的数据类型数据
dumps(内容) --> 将指定的内容,转换成json格式的字符串

jsonpython
jsonpython
数字int/float
字符串str
数组list
字典dict
true/falseTrue/False
nullNone

import json

# 1.loads
"""
loads(字符串)  --> 要求字符串的内容必须满足json格式
"""
content = json.loads('100.12')
print(content, type(content))

content = json.loads('"abc"')
print(content, type(content))

content = json.loads('[12, 12.8, "name", [1, "2a"]]')
print(content, type(content))
print(type(content[3]))

content = json.loads('{"a": 100, "b": true, "c": false, "d": null}')
print(content, type(content))


# 2.load
"""
load(文件对象) --> 将文件对象中的内容转换成python数据类型数据。要求文件中的内容必须是json格式的数据
"""
with open('./files/test.txt') as f:
    print(json.load(f))


"""
python转json:
python         json
int/float      数字
str            字符串(会将单引号变成双引号)
True/False     true/false
dict           字典
列表/元祖        数组
None           null

注意:除了上面列出的类型,其他类型不能直接转换成json格式的数据
"""
# 3.dumps
"""
dumps(内容) --> 内容是python数据。返回值是一个字符串,并且字符串的内容满足是json格式的
"""

str1 = json.dumps([1, 2, 'abc'])
print(str1)

print(json.dumps((100, 200, 'abc')))


str1 = json.dumps({'a': -12.34, 'b': True, 'c': 'Hello'})
print(str1, type(str1))

# 4.dump
"""
dump(内容, 文件对象) --> 将内容以json格式写入文件中
"""
with open('./files/test3.json', 'w') as f:
    json.dump({'a': 100, 'b':200, 'c': True}, f)


上一篇: 用python下载文件的若干种方法汇总

下一篇: python列表、元组、集合、字典、json相互转换以及其他基础入门

364 人读过
文档导航