Destination IP von Port?

Moin, hab durch meine Langeweile nach neuen Projekten gesucht und bin darauf gestoßen ein Programm zu schreiben welches mir die Destination IP durch das scannen eines ports gibt. Hab es erst als mit einer TCP Verbindung versucht damit hat alles geklappt dann wollte ich es mit einer UDP Verbindung testen und natürlich musste ich dafür einen neuen Code schreiben allerdings klappt das ganze nicht so wie ich es mir vorstellt und komme nicht drauf wie ich es anders machen könnte. Ich hab das ganze an einem CS2 server versucht und hab mich mit einem Public server verbunden, in Wireshark wird mir das ganz normal angezeigt in meinem Programm wird mir leider trotzdem nichts angezeigt :/Keine Ahnung ob ich einen Denkfehler habe oder komplett falsch an die sache rangegangen bin. Gerne Vorschläge + Danke im Voraus :) Hier mein Code:

import socket

def check_port(port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    
    try:
        host = socket.gethostbyname(socket.gethostname())

        sock.bind((host, port))
        print(f"Port {port} ist offen und bereit.")
        print(f"Checking {host}:{port}")

        while True:
            data, addr = sock.recvfrom(1024)
            print(f"Empfangene Daten von {addr[0]}:{addr[1]}: {data}")

    except OSError as e:
        print(f"OS Error{port}: {e}")
    finally:
        sock.close()

if __name__ == "__main__":
    port = 27015  
    check_port(port)
IP-Adresse, Netzwerktechnik, Port, Programmiersprache, Python, Python 3, UDP
Crawler geht nicht weiter, wenn fertig mit einer URL?

Hallo zusammen,

ich arbeite gerade an einem Python-Crawler, der spezifisch für die Website beispielurl.de entwickelt wurde. Mein Ziel ist es, verschiedene Unterseiten zu crawlen, die jeweils unterschiedlichen Kategorien angehören, wie z.B. "Flaschenhersteller" und "Kartenhersteller". Der Crawler soll automatisch von einer Kategorie (z.B. beispielurl.de/Flaschenhersteller/page-1, beispielurl.de/Flaschenhersteller/page-2, usw.) zur nächsten wechseln (z.B. beispielurl.de/Kartenhersteller/page-1, beispielurl.de/Kartenhersteller/page-2, usw.), sobald alle Seiten der aktuellen Kategorie durchlaufen sind.

Leider funktioniert der Wechsel zwischen den Kategorien nicht wie erwartet. Der Crawler verarbeitet alle Seiten der ersten Kategorie korrekt, aber anstatt zur nächsten Kategorie zu wechseln, beginnt er wieder von vorn bei der ersten Kategorie, ohne die nachfolgenden Kategorien zu berücksichtigen.

Hier ist ein vereinfachter Ausschnitt meines Codes:

def process_page(self, url):
  soup = self.fetch_page_with_selenium(url)
  links = self.extract_PLZ_links(soup)

  for link in links:
    self.fetch_PLZ_details(link)

def run(self):
  try:
    for code in self.postal_codes:
      page_number = 1
      has_more_pages = True

      while has_more_pages:
        url = f"{self.base_url}/suche/-/{code}?page={page_number}"
        soup = self.fetch_page_with_selenium(url)
        links = self.extract_PLZ_links(soup)

        if links:
          for link in links:
            self.fetch_PLZ_details(link)
            page_number += 1
        else:
          has_more_pages = False
  finally:
    self.driver.quit()
    self.csv_handler.close_csv()

Hersteller = [Flaschenhersteller, Kartenhersteller, etc. ]
crawler = WebCrawler("https://beispielurl.de", Hersteller)
crawler.run()

Hat jemand eine Idee, warum der Crawler nicht zur nächsten Kategorie wechselt und wie ich dieses Problem beheben könnte? Ich bin für jeden Tipp dankbar!

HTML, Webseite, programmieren, Code, Python, Webentwicklung, crawler, Python 3
Wo kann ich Tokens für GPT-4 kaufen?

Hallo,

ich programmiere gerade einen Sprachassistenten und wollte ihn nun mit GPT-4 verbinden, ich habe auf Shop - ChatGPT 50000 Tokens gekauft, doch wenn ich das Programm starte, steht, dass ich trotzdem keinen Zugriff auf GPT-4 habe. Muss ich die Tokens irgendwo anders kaufen?

Mein Code:

import openai
import pyttsx3
import re
import pyjokes
import speech_recognition as sr
from pyowm import OWM
import spotipy
from spotipy.oauth2 import SpotifyOAuth
import time
import random
import datetime
import pytz
from geopy.geocoders import Nominatim
from timezonefinder import TimezoneFinder


openai.api_key = 'sk-...'
model_id = "gpt-4"

engine = pyttsx3.init()


def recognize_speech():
    recognizer = sr.Recognizer()

    while True:
        with sr.Microphone() as source:
            print("Sage etwas...")
            audio = recognizer.listen(source, timeout=15)

        try:
            text = recognizer.recognize_google(audio, language="de-DE")
            print("Text: " + text)
            return text
        except sr.UnknownValueError:
            return "not_understood"
        except sr.RequestError as e:
            print(f"Fehler bei der Anfrage an die Google Web Speech API: {e}")
            return ""


def openai_request(prompt):
    response = openai.ChatCompletion.create(
        model=model_id,
        messages=prompt
    )

    api_usage = response['usage']
    print('Total Token consumed: {0}'.format(api_usage['total_tokens']))
    prompt.append({'role': response.choices[0].message.role, 'content': response.choices[0].message.content})
    return prompt


def speak(text):
    engine.say(text)
    engine.runAndWait()


def ausführen():
    while True:
        q = recognize_speech()
        print("Erkannter Text:", q)

        if q == "not_understood":
            speak("Entschuldigung! Das habe ich nicht verstanden.")
            break

        elif not q:
            break

        elif "hallo" in q:
            speak('Hallo! Womit kann ich dir behilflich sein?')
            break

        else:
            prompt = [{'role': 'user', 'content': q}]
            prompt = openai_request(prompt)
            response = prompt[-1]['content']
            speak(response)


if __name__ == '__main__':
    ausführen()

Fehlercode:

C:\Users\User\PycharmProjects\voiceAssistant\venv\interpreter\Scripts\python.exe C:\Users\User\PycharmProjects\voiceAssistant\main.py 

Sage etwas...

Text: wann war der erste Weltkrieg

Erkannter Text: wann war der erste Weltkrieg

Traceback (most recent call last):

 File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 83, in <module>

  ausführen()

 File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 77, in ausführen

  prompt = openai_request(prompt)

       ^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\User\PycharmProjects\voiceAssistant\main.py", line 43, in openai_request

  response = openai.ChatCompletion.create(

        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\User\PycharmProjects\voiceAssistant\venv\interpreter\Lib\site-packages\openai\api_resources\chat_completion.py", line 25, in create

  return super().create(*args, **kwargs)

      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\User\PycharmProjects\voiceAssistant\venv\interpreter\Lib\site-packages\openai\api_resources\abstract\engine_api_resource.py", line 153, in create

  response, _, api_key = requestor.request(

              ^^^^^^^^^^^^^^^^^^

 File "C:\Users\User\PycharmProjects\voiceAssistant\venv\interpreter\Lib\site-packages\openai\api_requestor.py", line 298, in request

  resp, got_stream = self._interpret_response(result, stream)

            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\User\PycharmProjects\voiceAssistant\venv\interpreter\Lib\site-packages\openai\api_requestor.py", line 700, in _interpret_response

  self._interpret_response_line(

 File "C:\Users\User\PycharmProjects\voiceAssistant\venv\interpreter\Lib\site-packages\openai\api_requestor.py", line 765, in _interpret_response_line

  raise self.handle_error_response(

openai.error.InvalidRequestError: The model `gpt-4` does not exist or you do not have access to it. Learn more: https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4.

Process finished with exit code 1

Freundliche Grüsse

kaufen, Code, Error, künstliche Intelligenz, Programmiersprache, Python, Python 3, token, Sprachassistent, Pycharm, ChatGPT
Python programm zu csv dateien funktioniert nicht?

Ich habe Code für ein python programm welches von 2 csv files pfade als input fragt, und diese dann prüft auf die ersten 2 spalten jeder reihe ob die 2 übereinstimmen. wenn dies so ist, soll die ganze spalte welche übereinstimmt von csv2 auf csv1 kopiert werden, das aber nur für die spalte die einstimmt

import os
import csv

def get_file_path(prompt):
    while True:
        file_path = input(prompt)
        if os.path.isfile(file_path):
            return file_path
        else:
            print("Fehler: Die angegebene Datei existiert nicht. Bitte geben Sie einen gültigen Pfad ein.")

def compare_csv_files():
    file1_path = get_file_path("Geben Sie den Pfad zur ersten CSV-Datei ein: ")
    file2_path = get_file_path("Geben Sie den Pfad zur zweiten CSV-Datei ein: ")

    with open(file1_path, newline='') as file1, open(file2_path, newline='') as file2:
        reader1 = csv.reader(file1)
        reader2 = csv.reader(file2)

        header1 = next(reader1)
        header2 = next(reader2)

        if header1[:2] != header2[:2]:
            print("Fehler: Die ersten beiden Spalten der CSV-Dateien stimmen nicht überein.")
            return

        rows1 = [row for row in reader1]
        rows2 = [row for row in reader2]

        output_rows = []
        for row1 in rows1:
            for row2 in rows2:
                if row1[:2] == row2[:2]:
                    output_rows.append(row2)
                    break

        if len(output_rows) == 0:
            print("Es wurden keine übereinstimmenden Zeilen gefunden.")
            return

        output_path = input("Geben Sie den Pfad zur Ausgabedatei ein: ")
        with open(output_path, 'w', newline='') as output_file:
            writer = csv.writer(output_file)
            writer.writerow(header1)
            for row in output_rows:
                writer.writerow(row)

    input("Drücken Sie die Eingabetaste, um das Programm zu beenden.")

Dieser Code fragt nach den Pfaden zu den beiden CSV-Dateien und prüft, ob die Dateien existieren. Wenn eine Datei nicht gefunden wird, wird eine Fehlermeldung ausgegeben und der Benutzer wird auf

Programmiersprache, Python, Python 3
Warum ist dieser Code so schlecht /funktioniert fast nicht?

Hallo, ich bin an einem Sprachassistenten dran und bin gerade bei der "Speech-to-Text" Funktion. Das ist mein bisheriger Code:

import speech_recognition as sr


def aufnahme():
    r = sr.Recognizer()

    with sr.Microphone() as quelle:
        r.pause_threshold = 0.8
        r.adjust_for_ambient_noise(quelle)
        gesagt = r.listen(quelle)

    try:

        q = r.recognize_google(gesagt, language="de")
        print("Recognized speech (Google):", q)
        return q

    except sr.UnknownValueError:
        print('Leider nicht verstanden (Google)')
        print("Recognized speech (Google):", r.recognize_google(gesagt, show_all=True, language="de"))

    except sr.RequestError as e:
        print(f'Fehler bei Sphinx-Erkennung: {e}')
        return "Ich warte auf Anweisungen"


# Call the function
result = aufnahme()
print(result)

Jedoch funktioniert er richtig schlecht, er versteht höchstens zwei Wörter und in 90% der Fälle kommt dieser Fehlercode:

Leider nicht verstanden (Google)

Traceback (most recent call last):

 File "C:\Users\...\PycharmProjects\voiceAssistant\main.py", line 21, in aufnahme

  q = r.recognize_google(gesagt, language="de")

 File "C:\Users\...\lib\site-packages\speech_recognition\recognizers\google.py", line 251, in recognize_legacy

  return output_parser.parse(response_text)

 File "C:\Users\...\lib\site-packages\speech_recognition\recognizers\google.py", line 124, in parse

  actual_result = self.convert_to_result(response_text)

 File "C:\Users\....\lib\site-packages\speech_recognition\recognizers\google.py", line 173, in convert_to_result

  raise UnknownValueError()

speech_recognition.exceptions.UnknownValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

 File "C:\Users\...\PycharmProjects\voiceAssistant\main.py", line 35, in <module>

  result = aufnahme()

 File "C:\Users\...\PycharmProjects\voiceAssistant\main.py", line 27, in aufnahme

  print("Recognized speech (Google):", r.recognize_google(gesagt, show_all=True, language="de"))

 File "C:\Users\...\lib\site-packages\speech_recognition\recognizers\google.py", line 251, in recognize_legacy

  return output_parser.parse(response_text)

 File "C:\Users\...\lib\site-packages\speech_recognition\recognizers\google.py", line 124, in parse

  actual_result = self.convert_to_result(response_text)

 File "C:\Users\...\lib\site-packages\speech_recognition\recognizers\google.py", line 173, in convert_to_result

  raise UnknownValueError()

speech_recognition.exceptions.UnknownValueError

Process finished with exit code 1

Woran liegt das, soll ich eine andere Speech Recognition verwenden und wenn ja welche?

Vielen Dank im Voraus!

Assistent, cmd, Code, Error, Problemlösung, Programmiersprache, Python, Python 3, Sprachassistent, Pycharm
Raspberry PI Flask-404 Not Found?

Hallo!

Ich habe das programmiert. Es wird jede Sekunde die Temperatur von der CPU ausgelesen. Jetzt möchte ich Flask einbauen, damit ich mit mehreren PC's darauf zugreifen kann. Aber es funktioniert nicht. Warum?

from flask import Flask, jsonify
import subprocess
import time
import os
from colorama import Fore, Style

app = Flask(__name__)

@app.route("/temp")
def get_cpu_temperature():
  try:
    result = subprocess.run(['vcgencmd', 'measure_temp'], capture_output=True, text=True, check=True)
    temperature_str = result.stdout.strip()
    temperature = float(temperature_str[5:-2]) # Extrahiere die Temperatur aus dem String
    return temperature
  except subprocess.CalledProcessError as e:
    print(f"Fehler beim Ausführen des Befehls: {e}")
    return None

def print_colored_temperature(temperature):
  if temperature is not None:
    if temperature > 49.9:
      print(f"{Fore.RED}Temperatur: {temperature}°C{Style.RESET_ALL}")
    else:
      print(f"Temperatur: {temperature}°C")
  else:
    print("Fehler beim Lesen der CPU-Temperatur.")

def main():
  try:
    while True:
      temperature = get_cpu_temperature()
      print_colored_temperature(temperature)
      time.sleep(1)
      os.system('clear')
  except KeyboardInterrupt:
    print("Programm wurde durch den Benutzer unterbrochen.")
  except Exception as e:
    print(f"Ein Fehler ist aufgetreten: {e}")
     
     


if __name__ == '__main__':
  app.run(host="0.0.0.0")

if __name__ == '__main__':
  main()
  import sys
  sys.exit(main(sys.argv))  
HTML, Code, Programmiersprache, Python, Python 3, Pycharm, Discord, Flask, Discord Bot, ChatGPT
Python: wann sind slice-Operationen an Arrays vorteilhaft?

Ich habe in Python versucht, eine doppelte Schleife über ein 2D Array (Variante 1) durch "array slice" Operationen (Variante 2) zu optimieren, stelle aber fest, dass dies nichts bringt, sondern die Rechenzeit sogar etwas größer wird.

Ich dachte eigentlich, dass man wo immer möglich slice Notation verwenden sollte, da dies schneller ist. Scheinbar kann man das aber nicht so einfach sagen.

Wann sind slice Operationen schneller bzw. von Vorteil? Leserlicher wid der Code ja nicht, aber dass er sogar langsamer wird überrascht mich nun doch ein wenig...

Der Code:

import numpy as np
import numpy.ma as ma
import time


def test():

 
  f = np.array([
    [0,  0,  0,  0,  0,  0,   0], 
    [0,  1,  3,  6 , 4,  2,   0], 
    [0,  2,  4,  7 , 6,  4,   0],   
    [0,  0,  0,  0,  0,  0,   0]
    ], dtype=float)
     

  u = np.array([
    [0,  0,  0,  0,  0,  0,   0], 
    [0,  0.5, 1,  0, -1, -0.5,  0], 
    [0,  0.7, 1.1, 0, -1, -0.4,  0], 
    [0,  0,  0,  0,  0,  0,   0], 
    ], dtype=float)
     
   
  # calculate : variant 1
  x = np.zeros_like(f)
   
  maxcount = 100000
   
  start = time.time()

  for count in range(maxcount):
    for i in range(1,u.shape[0]-1):
      for j in range(1,u.shape[1]-1):
        if u[i,j] > 0: 
          x[i,j] = u[i,j]*(f[i,j]-f[i,j-1])
        else:
          x[i,j] = u[i,j]*(f[i,j+1]-f[i,j])
         
  end = time.time()
  print("used time for variant 1:", end-start)
         
              
   
  # calculate : variant 2

  y = np.zeros_like(f)  

   
  start = time.time()
   
  for count in range(maxcount):
    maskl = (u[1:-1, 1:-1] > 0)
    maskr = ~maskl 
    diff = f[1:-1, 1:] - f[1:-1, 0:-1]
     
    yy = (y[1:-1, 1:-1])
    uu = (u[1:-1, 1:-1 ])
     
    yy[maskl] = uu[maskl] * (diff[:, :-1])[maskl]
    yy[maskr] = uu[maskr] * (diff[:, 1: ])[maskr]
   
  end = time.time()
  print("used time for variant 2:", end-start)
   
  np.testing.assert_array_equal(x, y)


test()

Die Ausgabe:

D:\python\animation>python test.py
used time for variant 1: 1.0328729152679443
used time for variant 2: 1.3058593273162842

D:\python\animation>python test.py
used time for variant 1: 1.1189219951629639
used time for variant 2: 1.3527190685272217

D:\python\animation>python test.py
used time for variant 1: 1.066974401473999
used time for variant 2: 1.3022441864013672
programmieren, Python, numpy, Python 3
Kann jemand über den Python Code gucken?

Der Dateipfad ist definitiv richtig. Ich habe versucht, das Bild direkt in den Ordner der Python-Datei zu legen. Trotzdem tritt weiterhin der gleiche Fehler auf. Das Bild ist im richtigen Format, und ich habe keine Ahnung, was das Problem verursacht.

import logging
import pyautogui


class Coordinates:
    def __init__(self, function, image_name, confidence=0.9, region=None):
        self.function = function
        self.image_name = image_name
        self.confidence = confidence
        self.region = region


    def offset(self, x_offset=0, y_offset=0, width_offset=0, height_offset=0):
        try:
            image_path = fr'templates\{self.image_name}.png'
            location = self.function(image_path, confidence=self.confidence, region=self.region)         
            
            if len(location) == 2:
                x, y = location
                x += x_offset
                y += y_offset
                return x, y


            elif len(location) == 4:
                x, y, width, height = location
                x += x_offset
                y += y_offset
                width += width_offset
                height += height_offset
                return x, y, width, height
            
        except pyautogui.ImageNotFoundException as e:
            logging.error(f'{e}')
            return None
        
x = Coordinates(pyautogui.locateCenterOnScreen, 'test').offset()


print(x)

Bild zum Beitrag
Computer, Programmiersprache, Python, Python 3
was bedeuted das?
C:\Users\admin\Desktop\app> pip install turtle
Collecting turtle
 Downloading turtle-0.0.2.tar.gz (11 kB)
 Installing build dependencies ... done
 Getting requirements to build wheel ... error
 error: subprocess-exited-with-error

 × Getting requirements to build wheel did not run successfully.
 │ exit code: 1
 ╰─> [22 lines of output]
     Traceback (most recent call last):
       File "C:\Users\admin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
         main()
       File "C:\Users\admin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
         json_out['return_val'] = hook(**hook_input['kwargs'])
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       File "C:\Users\admin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 118, in get_requires_for_build_wheel
         return hook(config_settings)
                ^^^^^^^^^^^^^^^^^^^^^
       File "C:\Users\admin\AppData\Local\Temp\pip-build-env-9moh374e\overlay\Lib\site-packages\setuptools\build_meta.py", line 325, in get_requires_for_build_wheel
         return self._get_build_requires(config_settings, requirements=['wheel'])
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       File "C:\Users\admin\AppData\Local\Temp\pip-build-env-9moh374e\overlay\Lib\site-packages\setuptools\build_meta.py", line 295, in _get_build_requires
         self.run_setup()
       File "C:\Users\admin\AppData\Local\Temp\pip-build-env-9moh374e\overlay\Lib\site-packages\setuptools\build_meta.py", line 480, in run_setup
         super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
       File "C:\Users\admin\AppData\Local\Temp\pip-build-env-9moh374e\overlay\Lib\site-packages\setuptools\build_meta.py", line 311, in run_setup
         exec(code, locals())
       File "<string>", line 40
         except ValueError, ve:
                ^^^^^^^^^^^^^^
     SyntaxError: multiple exception types must be parenthesized
     [end of output]

 note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip
cmd, Code, Programmiersprache, Python, Python 3
Wie klicke ich auf diese Elemente mit Python und Selenium?

Hallo,

Ich versuche, auf die folgenden Elemente auf dieser Webseite (https://www.bing.com/search?q=Bing+AI&showconv=1&FORM=hpcodx) mit Python und Selenium zu klicken.

//*[@id=“tone-options”]/li[3]/button

//*[@id=“camera-container”]/button

//*[@id=“camera-container”]/cib-flyout/cib-visual-search//div[3]/button[1]

Ich habe XPATH, CSS probiert.

Fehler:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="tone-options"]/li[3]/button"}

 (Session info: chrome=119.0.6045.200)

Stacktrace:

GetHandleVerifier [0x00007FF7D97B82B2+55298]

(No symbol) [0x00007FF7D9725E02]

(No symbol) [0x00007FF7D95E05AB]

(No symbol) [0x00007FF7D962175C]

(No symbol) [0x00007FF7D96218DC]

(No symbol) [0x00007FF7D965CBC7]

(No symbol) [0x00007FF7D96420EF]

(No symbol) [0x00007FF7D965AAA4]

(No symbol) [0x00007FF7D9641E83]

(No symbol) [0x00007FF7D961670A]

(No symbol) [0x00007FF7D9617964]

GetHandleVerifier [0x00007FF7D9B30AAB+3694587]

GetHandleVerifier [0x00007FF7D9B8728E+4048862]

GetHandleVerifier [0x00007FF7D9B7F173+4015811]

GetHandleVerifier [0x00007FF7D98547D6+695590]

(No symbol) [0x00007FF7D9730CE8]

(No symbol) [0x00007FF7D972CF34]

(No symbol) [0x00007FF7D972D062]

(No symbol) [0x00007FF7D971D3A3]

BaseThreadInitThunk [0x00007FF8125E7344+20]

RtlUserThreadStart [0x00007FF8130026B1+33]

kann mir jemand helfen? Danke.

HTML, Webseite, CSS, HTML5, Code, PHP, Programmiersprache, Python, Webdesign, Webentwicklung, Frontend, Python 3, Selenium
python - dict -Iterite nicht durch?

dict

 {"26-11-2023": {"1": {"enos": {"infinitivee": "enormous", "k": "b"}},"25-11-2023": {"1": {"enor": {"infinitivee": "enormous", "k": "b"}}}}}

code:

def read_json():
    daters = []
    # sefly read json file
    try:
        with open('German-English_wordlist.json', 'r', encoding="utf-8-sig") as f:
            data = json.load(f)
    except json.decoder.JSONDecodeError:
        print("\033[91m[!!] File empty or anything wrong in file\033[0m", end=" - ")
        print("\033[93mTry running `add` command\033[0m", end="\n")
        return
    except FileNotFoundError:
        print("\033[91m[!!] File not found\033[0m", end=" - ")
        print("\033[93mTry running `add` command to create\033[0m", end="\n")
        return
    except Exception:
        print("\033[91m[!!]Unknown error \033[0m", end=" - ")
        print("\033[93mTry to report\033[0m", end="\n")
        print(Exception)
        return
    # check valid vocabulary daters
    #KeyError: '25-11-2023'
    try:
        for key in data.keys():
            print(data)
            print(data['25-11-2023'])
            print(key)
            if timestamp >= int(datetime.datetime.strptime(key, '%d-%m-%Y').strftime("%s")) and timestamp != "---":
                daters.append(key)

    except UnboundLocalError:
        print("\033[91m[!!] File empty or anything wrong in file\033[0m", end=" - ")
        print("\033[93mTry running `add` command\033[0m", end="\n")
        return
    # if not a dater in then print finish and break else choice random on of them
    print(daters)
    try:
        dater = random.choice(daters)
    except IndexError:
        print("\033[93mFinish\033[0m\n")
        return

    queried = [key for key in data[dater].keys()]
    queried = random.choice(queried)
    keys = [key for key in data[dater][queried].keys()]
    key = random.choice(keys)
    forms = [key for key in data[dater][queried][key].keys()]

    # depending on the mode asking for the form of the word
    if False:
        form = random.choice(forms)
    else:
        form = "infinitivee"

    value = data[dater][queried][key][form]

    return data, dater, queried, key, form, value

output:

{'26-11-2023': {'1': {'enos': {'infinitivee': 'enormous', 'k': 'b'}}, '25-11-2023': {'1': {'enor': {'infinitivee': 'enormous', 'k': 'b'}}}}}
Traceback (most recent call last):
  File "/media/deffer/User_data/Tools/vokabularis/vokabularis.py", line 135, in <module>
    data, choused_dater, queried, key, form, value = read_json()
  File "/media/deffer/User_data/Tools/vokabularis/vokabularis.py", line 44, in read_json
    print(data['25-11-2023'])
KeyError: '25-11-2023'

Wenn ich mein dictionary zum volgendem andere, funktioniert alles.

{"25-11-2023": {"1": {"enor": {"infinitivee": "enormous", "k": "b"}}}, "26-11-2023": {"1": {"enos": {"infinitivee": "enormous", "k": "b"}}}}

code:

ist der selbe wie davor

Output:

Successed
Code, Error, Python 3

Meistgelesene Fragen zum Thema Python 3