вставка tkinter из numpy в список

#python #numpy #tkinter

#python #numpy #tkinter

Вопрос:

итак, я извлек базу данных и создал свой текстовый файл

я прочитал текстовый файл с помощью panda read csv и искал в нем слово с помощью этого кода:

 row , col = np.where(data == word)
print(data.loc[row])
  

допустим, я использую serach для mulan
, он печатает его следующим образом:

  TITLE  YEAR       IMDB

1  Mulan  2020  tt4566758
  

теперь я хочу, чтобы это было вставлено в список
(код):

 row , col = np.where(data == word)
list1.insert(END,data.loc[row])
  

но это отображается так, а не так, как выглядит фрейм данных:
вот в чем проблема

Ответ №1:

Я немного смущен отображаемым вами кодом, но я бы рекомендовал вам сохранить данные в виде словаря в файле .json и выполнить поиск по нему вместо использования массива numpy. С python это довольно просто.

редактировать: вы запросили пример.

Вот пример .файл json

 {
    "Movies": [
                {
                "Name": "Mulan"
                "Year": "2020"
                "Imdb": "t5000"
                },
                {
                "Name": "The lion king"
                "Year": "2005"
                "Imdb": "t3576"
                }
            ]
}
  

Сначала вы импортируете json

 import json
  

Затем вы открываете данные с помощью

 file = open("filename",r)
  

Затем вы загружаете данные в диктофон, это называется десериализацией.

 data = json.load(file)
  

Наконец, вы выполняете итерацию и выполняете поиск по данным с помощью

 cnt = 0
found = 0
for movie in data["Movies"]:
    if movie["Name"] == "The lion king":
        found = cnt
    cnt  = 1

row = data["Movies"][found]
  

Если данные найдены, они сохраняются в переменной строке.

Теперь для listbox код прост

 listRow = row["Name"]   "    "   row["Year"]   "    "   row["Imdb"]
Lb = Listbox(Tk())
Lb.insert(1, "NAME    YEAR    IMDB")
Lb.insert(2, listRow)
  

Вы можете настроить интервал между ИМЕНЕМ, ГОДОМ и IMDB, а также в ListRow по мере необходимости.

Я специально постарался сделать это как можно более простым.

Комментарии:

1. как мне выполнить поиск по ключевому слову в файле json? и тогда как его правильно отобразить?

2. дело в том, что я хочу, чтобы он отображался как фрейм данных, когда я обычно печатаю, он печатается красиво и организованно, но когда я вставляю его в список, он разрушается

3. сначала сохраните данные в переменной в виде строки. Затем вы можете сказать somevariable = data.json()[«ключевое слово»] [«Вложенное ключевое слово»]. Использование файла json более аккуратно при создании иерархии данных. Проблема с вашим списком заключается в том, что поле считает, что метки являются частью данных, и удаляет разрыв строки. вам нужно будет сделать заголовки одной строкой, а данные — другой. @comingfall

4. можете ли вы привести мне пример? из поиска и вставки?