python中用json存储列表字典等文件操作

 

JSON字符串用json.dumps, json.loads JSON文件名用json.dump, json.load

由于需要在脚本重启后依旧能够记住之前所使用的列表内容, 故采用json存储列表文件, 经过测试, 如下代码可行.

 1 import json
 2 
 3 
 4 def write_json(jlist):
 5     # 将bx列表写入json文件
 6     with open('data/bx_list.json', 'w') as f_obj:  
 7         json.dump(jlist, f_obj)
 8 
 9 
10 def read_json():
11     # 读取存储于json文件中的列表
12     with open('data/bx_list.json', 'r') as f_obj:
13         jlist = json.load(f_obj)
14     return jlist
15 
16 
17 if __name__ == "__main__":
18     list0=['bx-1', 'bx-2', 'bx-3', 'bx-4']
19     write_json(list0)
20     list1 = read_json()
21     print(list1)
22     list1.append('bx-5')
23     print(list1)
24     write_json(list1)
25     print(read_json())

运行结果如下:

 

['bx-1', 'bx-2', 'bx-3', 'bx-4']
['bx-1', 'bx-2', 'bx-3', 'bx-4', 'bx-5']
['bx-1', 'bx-2', 'bx-3', 'bx-4', 'bx-5']

 

 

备注:

1, 在window系统下, 当前目录下级目录表达方式为 'data/bx_list.json' 或者 r'data\bx_list.json', 此外建立json文件并不会建立文件夹, 在这里的data文件夹需要提前建好.

2, with open('data/bx_list.json', 'w') as f_obj: 这一行代码中,'w'的写入方式会覆盖掉原始文件.

 

补充:

python爬虫requests json与字典对象互相转换

https://www.cnblogs.com/Lin-Yi/p/7640147.html

 

import requests
import json
'''
json.loads(json_str) json字符串转换成字典
json.dumps(dict) 字典转换成json字符串 

'''
# 这是一个ajax发起的get请求,获取一个json对象
r = requests.get("https://m.douban.com/rexxar/api/v2/subject_collection/movie_showing/items?os=ios&for_mobile=1&start=0&count=18&loc_id=108288&_=0")
json_response = r.content.decode()  # 获取r的文本 就是一个json字符串

# 将json字符串转换成dic字典对象
dict_json = json.loads(json_response)
print(type(dict_json))

# 将字典转换成json字符串
str_json = json.dumps( dict_json )
print(type(str_json))

# 字典转换成json 存入本地文件
with open('./a.txt','w') as f:
    # 设置不转换成ascii  json字符串首缩进
    f.write( json.dumps( dict_json,ensure_ascii=False,indent=2 ) )

 

注意:

python将字典转为json数据中文乱码,可用如下代码解决

json.dumps(jsonData,ensure_ascii=False)

 

posted @ 2019-05-06 22:32  毛绒绒  阅读(12522)  评论(0编辑  收藏  举报