JSON字符串用json.dumps, json.loads JSON文件名用json.dump, json.load
html
因为须要在脚本重启后依旧可以记住以前所使用的列表内容, 故采用json存储列表文件, 通过测试, 以下代码可行.python
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())
运行结果以下:ios
['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']
备注: ajax
1, 在window系统下, 当前目录下级目录表达方式为 'data/bx_list.json' 或者 r'data\bx_list.json', 此外创建json文件并不会创建文件夹, 在这里的data文件夹须要提早建好.json
2, with open('data/bx_list.json', 'w') as f_obj: 这一行代码中,'w'的写入方式会覆盖掉原始文件.api
补充:app
python爬虫requests json与字典对象互相转换python爬虫
https://www.cnblogs.com/Lin-Yi/p/7640147.htmlpost
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)