怎么获得函数get_test_data()返回的是一个包含测试数据的列表。每个测试数据都是一个字典,字典的键是Excel表格中的列名,值是对应行的数据。
时间: 2024-02-23 20:03:34 浏览: 54
你可以在调用`get_test_data()`函数时传入Excel文件路径和工作表名称,函数会自动解析Excel文件,并将每行数据转换为一个字典,最后将所有字典组成的列表作为函数返回值返回。比如,你可以这样调用该函数:
```
file_path = 'test_data.xlsx'
sheet_name = 'Sheet1'
test_data = get_test_data(file_path, sheet_name)
```
这样就可以得到一个包含测试数据的列表`test_data`。你可以遍历这个列表,取出每个字典,再根据键名来获取对应的测试数据。
相关问题
怎么获得 ymltext = open_yml() file_path = ymltext['excel_path'] sheet_name = ymltext['open_excel_sheet_name'] "打开excel文件" def get_test_data(file_path, sheet_name): # 打开Excel文件并获取工作簿对象 workbook = xlrd.open_workbook(file_path) # 获取指定的工作表对象 sheet = workbook.sheet_by_name(sheet_name) # 获取行数和列数 rows = sheet.nrows cols = sheet.ncols # 定义一个空列表,用于存储测试数据 test_data = [] # 遍历每一行数据 for i in range(1, rows): # 定义一个字典,用于存储每一行数据 row_data = {} # 遍历每一列数据 for j in range(cols): # 获取单元格的值并添加到字典中 key = sheet.cell_value(0, j) value = sheet.cell_value(i, j) row_data[key] = value #将每一行数据添加到测试数据列表中 test_data.append(row_data) # 返回测试数据列表 return test_data里面返回的值并带到 def send_request(url, method, headers, params=None, data=None, json=None): # 发送HTTP请求并获取响应结果 response = requests.request(method=method, url=url, headers=headers, params=params, data=data, json=json) # 获取响应状态码和响应内容 status_code = response.status_code content = response.text # 将响应状态码和响应内容添加到字典中 result = {'status_code': status_code, 'content': content} # 返回响应结果字典 return result方法里面
在这个例子中,先使用`open_yml()`函数打开一个YAML文件,然后从中获取Excel文件路径和工作表名称,然后把这两个参数传给`get_test_data()`函数来读取Excel文件中的测试数据,最后把测试数据传给`send_request()`函数来发送HTTP请求并获取响应内容。
具体实现步骤如下:
1. 首先,使用`open_yml()`函数打开一个YAML文件,保存返回值到`ymltext`变量中。
```
ymltext = open_yml()
```
2. 从`ymltext`变量中获取Excel文件路径和工作表名称。
```
file_path = ymltext['excel_path']
sheet_name = ymltext['open_excel_sheet_name']
```
3. 调用`get_test_data()`函数读取Excel文件中的测试数据。
```
test_data = get_test_data(file_path, sheet_name)
```
4. 遍历`test_data`列表,依次发送HTTP请求并获取响应内容。
```
for data in test_data:
url = data['url']
method = data['method']
headers = data['headers']
params = data.get('params')
data = data.get('data')
json = data.get('json')
response = send_request(url, method, headers, params=params, data=data, json=json)
print(response)
```
注意,在发送HTTP请求时,需要根据测试数据中的请求方法、请求头、请求参数等信息来构造请求,并把请求参数传给`send_request()`函数。
def get_CIFAR10_data(num_training=5000, num_validation=500, num_test=500): cifar10_dir = r'D:\daima\cifar-10-python\cifar-10-batches-py' X_train, y_train, X_test, y_test = load_CIFAR10(cifar10_dir) print(X_train.shape) mask = range(num_training, num_training + num_validation) X_val = X_train[mask] y_val = y_train[mask] mask = range(num_training) X_train = X_train[mask] y_train = y_train[mask] mask = range(num_test) X_test = X_test[mask] y_test = y_test[mask] mean_image = np.mean(X_train, axis=0) X_train -= mean_image X_val -= mean_image X_test -= mean_image X_train = X_train.transpose(0, 3, 1, 2).copy() X_val = X_val.transpose(0, 3, 1, 2).copy() X_test = X_test.transpose(0, 3, 1, 2).copy() return { 'X_train': X_train, 'y_train': y_train, 'X_val': X_val, 'y_val': y_val, 'X_test': X_test, 'y_test': y_test, }这是一个加载cifar10数据集的函数,如何修改使其能加载mnist数据集,不使用使用 TensorFlow
要加载MNIST数据集,可以使用以下代码:
```
import numpy as np
import gzip
def load_mnist(path, kind='train'):
"""Load MNIST data from `path`"""
labels_path = f'{path}/{kind}-labels-idx1-ubyte.gz'
images_path = f'{path}/{kind}-images-idx3-ubyte.gz'
with gzip.open(labels_path, 'rb') as lbpath:
labels = np.frombuffer(lbpath.read(), dtype=np.uint8, offset=8)
with gzip.open(images_path, 'rb') as imgpath:
images = np.frombuffer(imgpath.read(), dtype=np.uint8, offset=16).reshape(len(labels), 784)
return images, labels
def get_MNIST_data(num_training=50000, num_validation=10000, num_test=10000):
mnist_dir = r'path/to/MNIST'
X_train, y_train = load_mnist(mnist_dir, kind='train')
X_test, y_test = load_mnist(mnist_dir, kind='t10k')
mask = range(num_training, num_training + num_validation)
X_val = X_train[mask]
y_val = y_train[mask]
mask = range(num_training)
X_train = X_train[mask]
y_train = y_train[mask]
mask = range(num_test)
X_test = X_test[mask]
y_test = y_test[mask]
# normalize images
mean_image = np.mean(X_train, axis=0)
X_train -= mean_image
X_val -= mean_image
X_test -= mean_image
# reshape images to 28x28x1
X_train = X_train.reshape(-1, 1, 28, 28)
X_val = X_val.reshape(-1, 1, 28, 28)
X_test = X_test.reshape(-1, 1, 28, 28)
return {
'X_train': X_train, 'y_train': y_train,
'X_val': X_val, 'y_val': y_val,
'X_test': X_test, 'y_test': y_test
}
```
其中 `load_mnist` 函数会从指定路径加载MNIST数据集,返回的 `images` 是一个形状为 `(num_samples, 784)` 的numpy数组,`labels`是一个形状为 `(num_samples,)` 的numpy数组。 `get_MNIST_data` 函数会调用 `load_mnist` 函数来加载数据集,并进行预处理,最后返回一个字典,包含训练集、验证集和测试集的图像和标签。
阅读全文