• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

python wyświrtlanie jsona

Object Storage Arubacloud
0 głosów
1,231 wizyt
pytanie zadane 3 sierpnia 2019 w Python przez noname3 Obywatel (1,180 p.)

Jako odskocznia postanowiłem poużywać pythona. Chciałem wyświetlić dane z pliku .json bez znaków typu: '{" lecz zawsze wywala mi błąd (nie używałem wcześniej za bardzo jsona, a już w ogóle w pythonie)

with open('file.json', 'r') as json_string:
            data = json.loads(json_string)
            print(data["something"])

Co jest  z tym nie tak ?

2 odpowiedzi

0 głosów
odpowiedź 3 sierpnia 2019 przez RafalS VIP (122,820 p.)
wybrane 5 sierpnia 2019 przez noname3
 
Najlepsza

Problem tkwi w tym, że json_string to tak na prawdę dopiero uchwyt/wskaźnik do pliku. Żeby pobrać zawartość jako string użyj metody read() na obiekcie pliku.

Moduł json udostępnia dwie funkcje do wczytywania:

  • load - przyjmuje uchwyt do pliku
  • loads - od load string, przyjmuje string

Więc albo:

import json
with open("file.json") as file:
    json_string = file.read()
    json_dict = json.loads(json_string)
    print(json_dict["something"])

albo:

import json
with open("file.json") as file:
    json_dict = json.load(file)
    print(json_dict["something"])

 

komentarz 3 sierpnia 2019 przez noname3 Obywatel (1,180 p.)
Za każdym razem mam ten sam błąd: TypeError: string indices must be integers
komentarz 4 sierpnia 2019 przez RafalS VIP (122,820 p.)
Pokaż plik json.
komentarz 4 sierpnia 2019 przez noname3 Obywatel (1,180 p.)
"{\"something\": \"gd778ao23asd7sga\"}"
komentarz 4 sierpnia 2019 przez RafalS VIP (122,820 p.)
To jest dokladna zawartość?
komentarz 4 sierpnia 2019 przez noname3 Obywatel (1,180 p.)
Wszystko co się znajduje w tym pliku
komentarz 4 sierpnia 2019 przez RafalS VIP (122,820 p.)

No to problemem jest właśnie ten plik a nie kod pythona.

Twój json jest jednym stringiem, bo wziąłeś całość w cudzysłów.

Poprawny json dla tego co próbowałeś zrobić:

{"something": "gd778ao23asd7sga"}

 

komentarz 5 sierpnia 2019 przez noname3 Obywatel (1,180 p.)

Dzięki za pomoc yes

0 głosów
odpowiedź 3 sierpnia 2019 przez reaktywny Nałogowiec (40,950 p.)
edycja 3 sierpnia 2019 przez reaktywny

Może tak:

import json
from pprint import pprint

with open('file.json') as fh:
    mydata = json.load(fh)

pprint(mydata)

Jest  różnica między metodą load i loads.

https://stackoverflow.com/questions/39719689/what-is-the-difference-between-json-load-and-json-loads-functions

Albo zmień u siebie:

data = json.loads(json_string.read())

 

komentarz 3 sierpnia 2019 przez noname3 Obywatel (1,180 p.)
Nadal ten sam problem

Podobne pytania

+1 głos
2 odpowiedzi 432 wizyt
pytanie zadane 12 listopada 2022 w Python przez Giacomo Nowicjusz (200 p.)
+1 głos
0 odpowiedzi 286 wizyt
pytanie zadane 23 sierpnia 2021 w Python przez Marak123 Stary wyjadacz (11,190 p.)
0 głosów
2 odpowiedzi 365 wizyt
pytanie zadane 26 października 2020 w Python przez lucyliu Początkujący (370 p.)

92,537 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...