vom Listen-key die values im dict auslesen?

1 Antwort

versuchs mal so ;

import datetime
import json


def add_vocabulary(key_word, value_word, form='infinitiv'):
    dater = datetime.datetime.now().strftime("%d-%m-%Y")


    try:
        with open('wordlist.json', 'r', encoding="utf-8-sig") as f:
            data = json.load(f)


            if dater not in data:
                data[dater] = {}


            if "0" not in data[dater]:
                data[dater]["0"] = {}


            if key_word not in data[dater]["0"]:
                data[dater]["0"][key_word] = [key_word]


            if form not in data[dater]["0"][key_word]:
                data[dater]["0"][key_word][form] = {}
                data[str(dater)]["0"][key_word][form] = value_word
                print("added as " + form + ": " + "english: " + key_word + "   german: " + value_word)


            while value_word != data[dater]["0"][key_word][form]:
                twogerman = data[dater]["0"][key_word][form]
                overwrite = input(f'do you want overwrite "%s" to "%s" (y-n): ' % (twogerman, value_word))


                if "y" == overwrite or "yes" == overwrite:
                    old_german = data[str(dater)]["0"][key_word][form]
                    data[str(dater)]["0"][key_word][form] = value_word
                    print("overwrite: " + "   form: " + form + ",   english: " + key_word + ",   german: " + old_german)
                    print("white: " + "   english: " + key_word + ",   german: " + value_word)
                    break


                elif "n" == overwrite or "no" == overwrite:
                    break


        with open('wordlist.json', 'w', encoding="utf-8-sig") as f:
            json.dump(data, f)


# Example usage
key_word = 'h'
value_word = 'j'
form = 'infinitiv'


add_vocabulary(key_word, value_word, form)


Woher ich das weiß:Hobby – Programmierer
ware37 
Fragesteller
 30.11.2023, 14:41

TypeError: list indices must be integers or slices, not str

0
Suboptimierer  01.12.2023, 06:49
@ware37

Ist das denn sehr kompliziert, die Textbegrenzer um die Indizes zu entfernen?

0
ware37 
Fragesteller
 01.12.2023, 15:29
@Suboptimierer

Dieser code funktioniert.
Ziel: Schlüsselwort = ['h']
In seinem code wird ['h'] zum value

0
ware37 
Fragesteller
 30.11.2023, 15:14

Sie verschieben, statt losen, das problem

0