Saltar al contenido

Comillas simples versus dobles en cargas json en Python

Solución:

Use la herramienta adecuada para el trabajo, no está analizando JSON sino Python, así que use ast.literal_eval() en lugar de:

>>> import ast
>>> ast.literal_eval('["a", "b", "c"]')
['a', 'b', 'c']
>>> ast.literal_eval("['a', 'b', 'c']")
['a', 'b', 'c']
>>> ast.literal_eval('["mixed", 'quoting', """styles"""]')
['mixed', 'quoting', 'styles']
  • Los documentos JSON siempre usan comillas dobles para cadenas, use UTF-16 para uhhhh sintaxis de escape hexadecimal, tener {...} objetos para pares clave-valor con claves siempre cadenas y secuencias [...] listas y uso null, true y false valores; tenga en cuenta los valores booleanos en minúscula. Los números vienen en formas enteras y de coma flotante.

  • En Python, las representaciones de cadenas pueden usar comillas simples y dobles, los escapes Unicode usan uhhhh y Uhhhhhhhh formularios (sin pares sustitutos UTF-16), diccionarios con {...} la sintaxis de visualización puede tener claves de muchos tipos diferentes en lugar de solo cadenas, las secuencias pueden ser listas ([...]) pero también puede usar tuplas ((...)), o aún podría tener otros tipos de contenedores. Python tiene None, True y False (¡Titlecase!) Y los números vienen en enteros, flotantes y formas complejas.

Confundir uno con el otro puede dar lugar a errores de análisis o problemas sutiles cuando la decodificación se realizó correctamente, pero los datos se han interpretado incorrectamente, como con puntos de código que no son BMP escapados, como Emoji. ¡Asegúrate de usar el método correcto para decodificarlos! Y en la mayoría de los casos, cuando tiene datos de sintaxis de Python, alguien realmente usó el método incorrecto de codificación y solo produjo accidentalmente representaciones de Python. Vea si la fuente necesita arreglarse en ese caso; por lo general, la salida se produjo utilizando str(object) dónde json.dumps(obj) debería haberse utilizado en su lugar.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *