¿Leer JSON desde un archivo?

RRC:

Me duele un poco la cabeza solo porque una declaración simple y sencilla me está arrojando algunos errores en la cara.

Tengo un archivo json llamado strings.json como este:

"strings": [{"-name": "city", "#text": "City"}, {"-name": "phone", "#text": "Phone"}, ...,
            {"-name": "address", "#text": "Address"}]

Quiero leer el archivo json, solo eso por ahora. Tengo estas declaraciones que descubrí, pero no funcionan:

import json
from pprint import pprint

with open('strings.json') as json_data:
    d = json.loads(json_data)
    json_data.close()
    pprint(d)

El error que se muestra en la consola fue este:

Traceback (most recent call last):
  File "/home/.../android/values/manipulate_json.py", line 5, in <module>
    d = json.loads(json_data)
  File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
[Finished in 0.1s with exit code 1]

Editado

Cambiado de json.loadsajson.load

y obtuve esto:

Traceback (most recent call last):
  File "/home/.../android/values/manipulate_json.py", line 5, in <module>
    d = json.load(json_data)
  File "/usr/lib/python2.7/json/__init__.py", line 278, in load
    **kw)
  File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 369, in decode
    raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 829 column 1 - line 829 column 2 (char 18476 - 18477)
[Finished in 0.1s with exit code 1]
bomba:

El json.load()método (sin "s" en "cargar") puede leer un archivo directamente:

import json

with open('strings.json') as f:
    d = json.load(f)
    print(d)

Estabas usando el json.loads()método , que se usa solo para argumentos de cadena .

Editar: el nuevo mensaje es un problema totalmente diferente. En ese caso, hay un json no válido en ese archivo. Para eso, recomendaría ejecutar el archivo a través de un validador json .

También hay soluciones para arreglar json como, por ejemplo, ¿Cómo puedo arreglar automáticamente una cadena JSON no válida? .

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Leer JSON desde un archivo de texto

¿Cómo leer matrices desde un archivo JSON?

Leer y calcular datos con JS desde un archivo JSON

Cómo leer texto HTML desde un archivo JSON

Leer desde el archivo json angularjs

leer sin firmar desde un archivo binario

¿Utiliza ParseDelimitedFromCodedInputStream para leer desde un archivo?

Leer / editar un archivo desde cierto punto

Usando getchar () para leer desde un archivo

Leer / editar un archivo desde cierto punto

Cómo leer un archivo .json desde un servidor remoto SSH con un script de shell

Cómo leer JSON desde un archivo en Java - json.simple

Cómo leer un comando de package.json desde un archivo de Jenkins

Leer y mostrar datos JSON desde un archivo externo en Vue.JS

Gatling: - Leer carga útil JSON múltiple desde un solo archivo

Leer y escribir desde un archivo Json usando Python y Javascript

¿Cómo leer desde Excel y escribir en un archivo json usando Python?

Estoy tratando de leer desde un archivo json en mi plantilla ejs

Cómo leer / escribir una ubicación desde / a un archivo json con Rascal

¿Cómo leer un archivo JSON desde la URL y asignarlo a una variable global en NodeJS?

¿Cómo leer datos JSON desde un archivo txt en Java?

¿Cómo leer objetos serializados desde un archivo json sin usar File.ReadAllLines? C#

Leer el archivo JSON desde el archivo en Angular

Leer el archivo JSON desde el archivo en Angular

importar desde un archivo Json

Leer un archivo TSV desde un servidor remoto

¿Puede un trabajo MapReduce en Oozie leer desde un archivo?

¿Es posible leer / escribir un archivo desde un applet?

Leer desde un archivo CSV y crear un objeto

TOP Lista

CalienteEtiquetas

Archivo