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)