#案例: # 1.json字符串和真正json互相转换问题! # 2.从文件中读取一整个json! ''' 真正json/dict: a={"id":1,"name":"张三"} json字符串:本质是字符串,a='{"id":1,"name":"张三"}' ''' import json #String json.dumps(Dict data);#用于把字典/json格式数据转换为json字符串 json1={"id":1,"name":"张三"} json_str1=json.dumps(json1).encode('UTF-8').decode('unicode_escape') print(json_str1) print("---------------------------------------------") #Dict json.loads(String json_str);#用于把json字符串转换为json/字典 # json_str2="{'id':1,'name':'张三'}" json_str2='{"id":1,"name":"张三"}' #OK json2=json.loads(json_str2,encoding="utf-8") print(json2) #从某文件中读取一整个json json3=json.load(open("C:/A/1.txt","r",encoding="utf-8")) print(json3)
====================================================
#技术:从1个文件中读取N个json数据(1行一个json),并传给某请求 ''' 案例: 有个接口:post http://abc.com/user/login 请求参数(json):是从C:/B/2.txt中的每一行 ''' import json,requests #从文件C:/B/2.txt中读取所有的json fp=open("C:/B/2.txt","r",encoding="UTF-8") #遍历每一行数据 for line in fp: line=line.rstrip() # 把字符串类型的line转换为Dict(字典)类型 data=json.loads(line,encoding="utf-8") getPost_Url=requests.post(url="http://abc.com/user/login",json=data) fp.close()
============================================
# 技术:从N个文件中读取N个json数据(1文件一个json),并传给某请求! import os,sys,json,requests dir="C:/A" #获取C:/A目录下所有的文件名 fileName=os.listdir(dir) #遍历每个文件 for file in fileName: data=json.load(open(dir+"/"+file,"r",encoding="utf-8")) print(data) # 发请求 # response = requests.post(url="http://abc.com/user/login", json=data)
==========================================================
#技术:把接口的响应数据写入到文件中:所有记录写到一个文件中,一个记录对应文件中的一行! #案例:把GET http://127.0.0.1:8000/api/departments/接口的获取到的N个学院信息写入到1个文件! import requests import json #发请求 response=requests.get(url="http://127.0.0.1:8000/api/departments/") #获取响应实体 response_body=response.json() #获取所有学院 allXueYuan=response_body["results"] #遍历这些学院 for x in allXueYuan: #把字典类型的x转换为字符串类型 x_str=json.dumps(x).encode('utf-8').decode('unicode_escape') #把字符串x_str写入到文件中 with open('C:/B/2.txt', 'a', encoding='utf-8') as f: f.write(x_str) f.write("\n")
==================================================
#技术:把接口的响应数据写入到文件中:每个记录写一个文件。总共N个文件! #案例:把GET http://127.0.0.1:8000/api/departments/接口的获取到的N个学院信息写入到N个文件! import requests import json #发请求 response=requests.get(url="http://127.0.0.1:8000/api/departments/") #获取响应实体 response_body=response.json() #获取所有学院 allXueYuan=response_body["results"] #遍历这些学院 i=1 for x in allXueYuan: #把字典类型的x转换为字符串类型 x_str=json.dumps(x).encode('utf-8').decode('unicode_escape') #把字符串x_str写入到文件中 with open('C:/A/'+str(i)+".txt", 'a', encoding='utf-8') as f: f.write(x_str) f.write("\n") i=i+1
===============================================
#假设该变量是某接口的响应实体 response_body=\ { "id":1, "name":"zansan", "data1": { "msg":"哈哈", "token":"asdsadsads" }, "data2": [ { "key":"K001", "stuName":"张三" }, { "key": "K002", "stuName": "李四" }, [ 1,2,3 ] ] } #获取id=1 print(response_body["id"]) #获取msg="哈哈" print(response_body["data1"]["msg"]) #获取data2 data2=response_body["data2"] stu1=data2[0] stu2=data2[1] stu1_name=stu1["stuName"] print(stu1_name) a=data2[2][1] print(a)