-
字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串转换成unicode编码。
encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串转换成gb2312编码。
-
‘r’只读模式,必须打开一个已有的文件,且只能执行读操作。
‘r+’读+追加模式,可读可写,与‘r’相同之处在于也是必须打开一个已有的文件,不同的是它可写可读,而且写与读不分先 后,即随时都可进行读与写。(写为追加在文件末尾)
‘w’只写模式,打开即默认创建一个新的空文件,当然若打开的是已有文件,则清空文件,且只能执行写操作。
‘w+’写读模式,打开创建新文件,因此需要先把内容写进去在读。即保证文件有内容通过移动光标来读自己想要的部分。
‘a’追加模式,若打开的是已有文件则直接对已有文件操作,若打开文件不存在则创建新文件,只能执行写(追加在后面),不能读。即追加写。
‘a+’追加读写模式,打开文件方式同‘a’一样,写方式也和'a'一样,但是可以读。且是任意时刻读写。需要注意的是你若刚用‘a+’打开一个文件,则不能立即读,因为此时光标已经是文件末尾,除非你把光标移动到初始位置或任意非末尾的位置。
3:
json.loads()方法可以将JSON字符串转为JSON对象。
import json
str='[{"xiaoyun":"shumu"}]'#key,alue都必须用双引号。必须得是一个字符串,要有两边的单引号。
data=json.loads(str)
print(data)
print(type(data))
[{'xiaoyun': 'shumu'}]
<class 'list'>
如果要从文本文件中读取内容,要先把内容读出。
import json
with open('data.json','r') as file:
str=file.read()#读出
data=json.loads(str)
print(data)
4:
json.dumps()方法可以将JSON对象转为JSON字符串。
with open('data.json','w',encoding='utf-8') as file:
file.write(json.dumps(data,indent=2,ensure_ascii=False))
json.dumps序列化时候对中文默认使用的ascii编码,想要输出真正的中文需要指定ensure_ascii=False