How to Split Large Automation File into Small Files

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問


Platform Notice: Cloud - This article applies to Atlassian products on the cloud platform.

免責事項

Atlassian does not support the code below, which is provided "AS IS." This article provides a piece of code that illustrates one way to achieve the desired goal.

Feedback provided at the bottom of the page is appreciated, but won't be handled as support.

要約

You need to import a JSON file containing several automation rules and you face the following error:


環境

  • Jira Cloud
  • This script requires Python 3 to be installed


ソリューション

  • The code below assumes you have a json file called "automation-rules.json" with your original rules exported
  • The code will create a new folder called "output_batches", where the splited files will be placed
  • The code is set to split the files in batches of 200 rules. This can be changed 

Split_rules
import json
import os

def split_json_file(file_path, output_dir, batch_size):
    # Ensure output directory exists
    os.makedirs(output_dir, exist_ok=True)

    # Load the main JSON file
    with open(file_path, 'r', encoding='utf-8') as f:
        data = json.load(f)
    
    # Check if it's the expected structure
    if 'rules' not in data:
        print("Invalid JSON format: 'rules' key not found.")
        return

    # Get the list of rules
    rules = data['rules']
    total_rules = len(rules)
    
    # Split rules into batches
    for i in range(0, total_rules, batch_size):
        # Slice the list of rules for the current batch
        batch_rules = rules[i:i + batch_size]
        batch_data = {"rules": batch_rules}

        # Define the output file path
        batch_file_name = f"batch_{i // batch_size + 1}.json"
        batch_file_path = os.path.join(output_dir, batch_file_name)

        # Write the batch to a new JSON file
        with open(batch_file_path, 'w', encoding='utf-8') as f:
            json.dump(batch_data, f, indent=4)

        print(f"Created batch file: {batch_file_path} with {len(batch_rules)} rules")

# Usage example
file_path = 'automation-rules.json'  # Path to the large JSON file
output_dir = 'output_batches'  # Directory to save the smaller files
batch_size = 200  # Number of rules per batch

split_json_file(file_path, output_dir, batch_size)






最終更新日 2024 年 11 月 12 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.