Как сохранить случайно сгенерированную строку в переменной и получить доступ к другой функции в Python

#json #python-3.x #pytest

Вопрос:

Я использую pytest для написания своих тестов. В рамках теста мне нужно передать случайное число в запросе API и отправить запрос, который я могу. Следующим шагом является доступ к выше сгенерированным случайным числам и доступ в другой функции. Я могу получить доступ к случайным числам, сгенерированным в другой функции, когда в файле json есть только один набор запросов.

Прикрепление кода

 import json import requests import pytest import string import random   @pytest.fixture def order_data():  with open ("order_data.json", encoding='utf-8-sig') as order_json :  return json.load(order_json)  def test_api(order_data) :  for payload in order_data :  test_api.expected_accountID = payload[ "Payload" ][ "accountNumber" ] =   ''.join ( random.choices ( string.ascii_letters   string.digits, k=length ) )  test_api.expected_orderno = payload[ "Payload" ][ "orderno" ] =   ''.join ( random.choices ( string.ascii_letters   string.digits, k=length ) )  request_body = json.dumps(payload) # json.dumps command converts request into json format  print ( "Request body:", request_body )   # send request  response = requests.post ( url, request_body, headers=headers )   print("***accountID captured from request api***", test_api.expected_accountID)  print("***accountID captured from request api***", test_api.expected_orderno)     def test_name(order_data):  for accountId in order_data:  print ( "***accountID in test_name***", test_api.expected_accountID)  print("***orderno in test_name***", test_api.expected_orderno)   Data in order data json file  [  {"Payload":{  "accountNumber": "",  "ProductId": 1,  "Price": 102.00,  "Orderno": "",  "SKU": 342   }  }  ]  

код работает нормально, так как файл json содержит только один набор запросов/полезной нагрузки. Это не сработает, если я добавлю еще один запрос в файл json. Есть идеи, как прочитать случайные числа, если файл json содержит следующие данные ?

 [  {"Payload":{  "accountNumber": "",  "ProductId": 1,  "Price": 102.00,  "Orderno": "",  "SKU": 342   }  },   {"Payload":{  "accountNumber": "",  "ProductId": 1,  "Price": 102.00,  "Orderno": "",  "SKU": 2524  }  } ]