¡Encuentra las marcas que te gustan a los precios que más te convengan con una tarjeta de regalo de TJX! Nuestros compradores negocian increíbles ofertas con los mejores diseñadores y te transfieren los ahorros. Los departamentos incluyen ropa, calzado, hogar, belleza y accesorios. La tarjeta de regalo TJX se puede canjear en más de 3200 ejemplares de T. J. Maxx, Marshalls, HomeGoods, Homesense y Sierra (en EE. UU. y Puerto Rico) y en línea en tjmaxx.com, sierra.com y marshalls.com.
La solución implica analizar la estructura de entrada y generar el HTML apropiado en función de si cada objeto representa un sistema independiente o parte de los requisitos de un único sistema.
### Enfoque
1. **Identifique la estructura de entrada**: compruebe si algún objeto de la matriz de entrada contiene una clave de «sistema». Esto determina si se trata de varios sistemas o de los requisitos de un solo sistema.
2. **Procesar varios sistemas**: Si existe la clave de «sistema», cada objeto se trata como un sistema independiente. Extraiga el nombre del sistema y sus requisitos y, a continuación, genere una sección HTML para cada uno.
3. **Sistema único de procesos**: Si no se encuentra ninguna clave de «sistema», recopile todos los pares clave-valor de todos los objetos y formatéelos en una sola sección HTML.
4. **Genere HTML**: construya la cadena HTML para cada sistema o para los requisitos combinados, asegurándose de que la estructura y la indentación sean adecuadas.
### Código de solución
```python
importar json
def reformat_html (json_str):
datos = json.loads (json_str)
has_system = any ('sistema' en obj para obj en datos)
html_parts = []
si has_system:
para obj en los datos:
system_name = obj.get ('sistema', «)
requisitos = obj.get ('requisito', «)
html = f"'
Requisitos del sistema de {system_name}
ESPECIFICACIONES MÍNIMAS
{requisitos}
«'
html_parts.append (html)
otra cosa:
requisitos = []
para obj en los datos:
para la clave, el valor en obj.items ():
requirements.append (f'
{key}: {value} ')
html = f"'
Requisitos del sistema de PC
ESPECIFICACIONES MÍNIMAS
}
«'
html_parts.append (html)
devuelve '\n\n
\n'.join (html_parts)
# Ejemplo de uso:
input_json = «'
[
{"system» :"Windows», "required»:» Sistema
- operativo: Windows 7 o superior Procesador:
- 1,5 Ghz Memoria:
- 2 GB de RAM Gráficos:
- 256 MB de DirectX 9 o superior
- Almacenamiento: 1 GB de espacio disponible Notas adicionales:
- Se requiere una copia impresa del manual de desactivación de bombas. Se necesita HTC Vive u Oculus
Rift/DK2 para jugar en realidad virtual. «},
{"system» :"Mac», "required»:»
- OS X 10.9 o posterior Procesador:
- Procesador Intel de 1,5 GHz Gráficos:
- 256 MB o más Almacenamiento:
- 1 GB de espacio disponible
- Notas adicionales
:
No se admite la realidad virtual. «}
]
«'
output_html = reformat_html (input_json)
imprimir (output_html)
```
### Explicación
- **Gestión de entradas**: la entrada se analiza como JSON para extraer las estructuras de datos. Se comprueba la presencia de una clave de «sistema» en cada objeto para determinar si representa un sistema independiente.
- **Generación de HTML**: para cada sistema identificado, se genera la sección HTML correspondiente con los encabezados y requisitos adecuados. Si se utiliza un único sistema, todos los pares clave-valor de todos los objetos se compilan en una sola sección HTML.
- **Formato de cadenas**: el HTML se construye con el anidamiento y la indentación adecuados para que coincida con la estructura requerida, lo que garantiza la claridad y la corrección del resultado.
Este enfoque procesa de manera eficiente ambos tipos de estructuras de entrada y genera la salida HTML correspondiente según lo especificado.
¡Sé el primero en reseñar este producto!
Compartir