Anwendungsfall: Code generieren und refaktorieren

Mit Gemini Enterprise können Sie neuen Code generieren und vorhandenen Code umgestalten.

Beispielprompt

Geben Sie im Chatfeld einen Prompt ähnlich dem folgenden ein:

Can you generate a Python function to parse a JSON file and extract specific
keys? Also, can you refactor the code in the attached file to improve its
readability and efficiency?

Beispielausgabe

Als Antwort auf diesen Prompt gibt Gemini Enterprise eine Ausgabe ähnlich der folgenden zurück:

Natürlich. Ich kann Ihnen bei beiden Anfragen helfen.

Hier ist eine Funktion für allgemeine Zwecke in Python zum Parsen einer JSON-Datei und zum Extrahieren einer Liste angegebener Schlüssel. Sie umfasst die Fehlerbehandlung für häufige Probleme wie eine fehlende Datei oder ungültige JSON-Inhalte.

Funktion zum Parsen von JSON und Extrahieren von Schlüsseln

import json

def extract_keys_from_json(file_path, keys_to_extract):
    """
    Parses a JSON file and extracts values for a specific list of keys.

    Args:
        file_path (str): The path to the JSON file.
        keys_to_extract (list): A list of strings representing the keys to extract.

    Returns:
        dict: A dictionary containing the extracted keys and their values.
              Returns an empty dictionary if the file is not found or is invalid.
    """
    extracted_data = {}
    try:
        with open(file_path, 'r') as f:
            data = json.load(f)
            # ...

Umgestalteter Code

Hier ist die umgestaltete Version der von Ihnen bereitgestellten Datei hi.py. Die wichtigsten Verbesserungen zielen darauf ab, den Code sicherer und lesbarer zu machen, indem die tief verschachtelten if-Anweisungen entfernt werden.

Diese Version verwendet die Methode .get(), die eine „pythonischere“ Möglichkeit ist, auf Wörterbuchschlüssel zuzugreifen, die möglicherweise nicht vorhanden sind. So lassen sich KeyError-Ausnahmen vermeiden und der Code wird übersichtlicher und leichter nachvollziehbar.

import json

def update_user_status_refactored(json_data):
    """
    Parses user data, updates status, and handles nested keys safely.
    """
    data = json.loads(json_data)

    # Safely get the email using .get() to avoid errors if keys are missing
    # .get('user', {}) returns an empty dict if 'user' is not found
    email = data.get('user', {}).get('details', {}).get('email')

    if email:
        print(f"Processing user: {email}")

    # Update the user status
    if 'user' in data:
        # ...