从本地中读入json格式文件,然后转换成python的格式,对其进行删除,修改之后,再次以json的格式编码,并写入文件
PS:JSON 是用来进行数据转换的,第一次遇见
思路:
- 从json文件中读取
- 将json转换成python的数据结构,对其内容进行修改,然后再编码成json
- 将json写入文件
原文件内容:
{“weather”:{“city”:”泰兴”,”温度”:”-1~-5摄氏度”,”风力”:”3-4级”}}
修改之后,在写入:
{“weather”:{“city”:”泰兴”,”温度”:”-1~-5摄氏度”,”风力”:”3-4级”}}
{“温度”: “-1~-5摄氏度”, “city”: “南京”, “风力”: “3-4级”}
代码:
import json
def fetch_data():
f = open('/home/dream/桌面/weather.json')
data = f.read()
print('以字符串形式读出.json成功')
return data
def select_data(data_json):
temp = json.loads(data_json)
data_python = temp['weather']
data_python['city'] = '南京'
json_data = json.dumps(data_python,ensure_ascii=False)
print('提取天气数据,并修改城市成功')
return json_data
def write_data(data_changed):
f = open('/home/dream/桌面/weather.json','a+')
f.write(data_changed)
f.close()
print('写入成功')
data = fetch_data()
result= select_data(data)
write_data(result)
总结:
简单的操作并不难,关键是要弄清楚几个小点
- loads()用来返回python的格式,解码。
- dumps()是编码,将python格式转换成json格式的 字符串,这一点挺重要的。
- ensure_ascii=Flase.默认是用ASCII来编码的,因为有中文所以False。关掉。
作为刚开始编程的我,不得不承认还差很多,不过慢慢来总会改善的。在取函数名字的时候,我就发现真的难啊,也是一门学问呢~加油~共勉~还有直接对文件的操作,差不多,就不再举例了