Импорт файлов JSON в графическом интерфейсе с использованием Python.получение JSONDecodeError - PullRequest
0 голосов
/ 21 мая 2018

Ссылка на файл .json -> Это ссылка на файл .json.

Я делаю проект на основе Python, и здесь я пытаюсь сделать следующее:использовать файл .json.Однако когда я попытался импортировать его для использования с графическим интерфейсом, я получил следующую ошибку:

Заранее спасибо.Трассировка (последний вызов был последним):

  File "<ipython-input-1-31816de2c4db>", line 1, in <module>
    runfile('C:/Users/Akshita/pyex/Webmap/Gui.py', wdir='C:/Users/Akshita/pyex/Webmap')

 File "C:\Users\Akshita\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
   execfile(filename, namespace)

 File "C:\Users\Akshita\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

 File "C:/Users/Akshita/pyex/Webmap/Gui.py", line 12, in <module>
   data=json.load(open(r"C:\Users\Akshita\pyex\Webmap\world.json"))

 File "C:\Users\Akshita\Anaconda3\lib\json\__init__.py", line 299, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)

  File "C:\Users\Akshita\Anaconda3\lib\json\__init__.py", line 354, in loads
   return _default_decoder.decode(s)

 File "C:\Users\Akshita\Anaconda3\lib\json\decoder.py", line 339, in decode
  obj, end = self.raw_decode(s, idx=_w(s, 0).end())

 File "C:\Users\Akshita\Anaconda3\lib\json\decoder.py", line 357, in raw_decode
  raise JSONDecodeError("Expecting value", s, err.value) from None

JSONDecodeError: Ожидаемое значение


# -*- coding: utf-8 -*-
"""
Created on Mon May 21 10:15:01 2018

@author: Akshita
"""

from tkinter import *
import json
import difflib
from difflib import get_close_matches
data=json.load(open(r"C:\Users\Akshita\pyex\Webmap\world.json"))
window=Tk()
window.title("Webmap")
l1=Label(window,text="Name_of_place")
l1.grid(row=0,column=0)
val=StringVar()
e=Entry(window,textvariable=val)
e.grid(row=0,column=1)
be=Button(window,text="Enter",command=entry)
be.grid(row=0,column=2)
def entry():

    w= e_val.get()

    w=w.title()

    if w in data:
     t.insert("Data matched")
    elif len(get_close_matches(w,data.keys(),cutoff=0.8))>0:
        t.insert("Did you mean %s instead?" %get_close_matches(w,data.keys())[0])  

t=Text(window,height=3,width=20)
t.grid(row=1,column=1)
by=Button(window,text="Yes",command=yeah)
by.grid(row=2,column=1)
def yeah():
    t.insert("Processing")

bn=Button(window,text="No",command=nah)
bn.grid(row=2,column=2)

def nah():
    t.insert("No such Data")

window.mainloop()

1 Ответ

0 голосов
/ 22 мая 2018

Похоже, ваш JSON-файл недействителен - неправильная последовательность скобок в конце.

Конец должен выглядеть следующим образом:

... <previous data> ... ,[2.96361,36.802216]]]}}]}

Вы можете использовать онлайн или IDE JSONшашки для проверки вашего файла.


update

Получил ваш полный файл json.

Оказывается, он имеет заголовок спецификации UTF-8.Попробуйте load() это так:

import json
import codecs

data = json.load(codecs.open('tst.json', 'r', 'utf-8-sig'))
print(data)

Похожие сообщения SO: https://stackoverflow.com/a/13156715/2315573

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...