Преобразование excel / csv в формат ниже json с использованием python для запуска ansible заданий - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь выполнить автоматизацию, при которой я буду передавать информацию, представленную в excel / csv, в сценарий автоматизации, чтобы выполнить payload = requests.post(url,auth=(auth_user, auth_pass),headers=headers, data=json), где каждая строка будет запускать задание в ansible.

Мой текущий excel / csv выглядит так (формат можно выбрать как excel / csv, что проще, поскольку это вводится пользователем)

введите описание изображения здесь

Мне нужен результат json, например:

для первой итерации:

json={"extra_vars" : " {\"dep_env\": \"CERT2\", \"ServerGroup\": \"Batch-server_group\", \"operation\": \"STATUS\"}"}

для второй итерации:

json={"extra_vars" : " {\"dep_env\": \"CERT3\", \"ServerGroup\": \"Service-server_group\", \"operation\": \"START\"}"}

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 14 июля 2020

Попробуйте это

import json 
  
  
# Function to convert a CSV to JSON 
# Takes the file paths as arguments 
def make_json(csvFilePath): 
      
    # create a dictionary 
    data = {} 
      
    # Open a csv reader called DictReader 
    with open(csvFilePath, encoding='utf-8') as csvf: 
        csvReader = csv.DictReader(csvf) 
          
        # Convert each row into a dictionary  
        # and add it to data
        json_arr = []
        for rows in csvReader: 
              
            # Assuming a column named 'ServerGroup' to 
            # be the primary key 
            key = rows['ServerGroup'] 
            data[key] = rows
            json_arr.append({"extra_vars" : str(json.dumps(data)) })
  
    
    # function to dump data 
    return json_arr
          
# Driver Code 
# Call the make_json function 
jsonres = make_json(csvFilePath, jsonFilePath)
...