Der Versuch, einen API -Anruf auf Mindlink zu tätigenPython

Python-Programme
Anonymous
 Der Versuch, einen API -Anruf auf Mindlink zu tätigen

Post by Anonymous »

Ich sollte beginnen zu sagen, dass ich in keiner Weise ein Programmierer bin. Ich bin im Grunde jemand in der Finanzierung, der eine Art Vorstellung von Datenanalysen hat. Ich habe ChatGPT (die kostenlose Version) gebeten, mir einen Code zu schreiben, der auf die Mindlink -API zugreifen könnte (eine Website für den Kauf und Verkauf von LEGO). Es würde dann von einem Satz die Inventardaten herunterladen und sie mit Preishandbuchdaten ändern. Diese Preishandbuchsdaten würden für jeden Teil im Bestand des Sets abgerufen und enthält Informationen über die Anzahl der verkauften Artikel und Lose, die Anzahl der Gegenstände und Grundstücke zum Verkauf und den Preis, für den die Artikel in den letzten 6 Monaten verkauft werden . < /p>
Irgendwie wird das Inventar heruntergeladen, aber dann wird der Rest der Informationen nicht hinzugefügt. Die Warnung, die ich bekomme, lautet wie folgt: < /p>

WARNUNG: Fehlende oder missgebildete 'Element' Schlüssel in Bestandsdaten:
{'match_no': 0,. 'Einträge': [{'item': {'nein': '2431', 'name': 'Tile
1 x 4', 'type': 'part', category_id ': 37},' color_id ': 85,
' Menge ': 8,' Extra_quantity ': 0,' is_alternate ': false,
' is_counterPart ': false}]} < /p>
< /blockquote >
Ich hoffe, dass es eine einfache Lösung für mein Problem gibt, die ich nicht beheben kann, und Chatgpt hat auch große Probleme mit ... < /p>
Der Code verwendet wird wie folgt < /p>
import requests
from requests_oauthlib import OAuth1
import pandas as pd

# BrickLink API credentials (Replace these with your actual credentials)
CONSUMER_KEY = 'redacted'
CONSUMER_SECRET = 'redacted'
TOKEN_VALUE = 'redacted'
TOKEN_SECRET = 'redacted'

# Base URL for BrickLink API
BASE_URL = "https://api.bricklink.com/api/store/v1"

def get_set_inventory(set_num):
"""Fetches inventory (part list) of a LEGO set."""
set_num_with_version = f"{set_num}-1" if "-" not in set_num else set_num # Ensure -1 is added if missing
url = f"{BASE_URL}/items/SET/{set_num_with_version}/subsets"
auth = OAuth1(CONSUMER_KEY, CONSUMER_SECRET, TOKEN_VALUE, TOKEN_SECRET)
response = requests.get(url, auth=auth)
if response.status_code == 200:
return response.json().get("data", [])
else:
print(f"Error fetching inventory: {response.status_code}")
return []

def extract_parts(inventory_data):
"""Extracts parts (part number, name, and quantity) from the inventory data."""
parts_list = []

# Loop through items in the inventory
for item in inventory_data:
# Loop through entries within each item
entries = item.get('entries', [])
if not entries:
print(f"Warning: No entries found for item {item}")
continue # Skip if no entries

# Process each entry
for entry in entries:
item_data = entry.get('item', None)
if item_data is None:
print(f"Warning: Missing 'item' key in entry {entry}")
continue # Skip if 'item' data is missing

# Extract part details
part_no = item_data.get('no')
part_name = item_data.get('name')
quantity = entry.get('quantity', 0) # Default to 0 if no quantity

# Add the part to the list
parts_list.append({
'Part Number': part_no,
'Part Name': part_name,
'Quantity': quantity
})

return parts_list

def save_parts_to_excel(parts_list, filename="lego_parts.xlsx"):
"""Saves the parts list to an Excel file."""
if parts_list:
df = pd.DataFrame(parts_list)
df.to_excel(filename, index=False)
print(f"Parts list has been saved to {filename}")
else:
print("No parts data to save.")

def main():
set_num = input("Enter LEGO set number: ")
inventory = get_set_inventory(set_num)

# Check if inventory is populated
if not inventory:
print("Inventory is empty!")
else:
print(f"Inventory contains {len(inventory)} items.")

# Extract parts from the inventory data
parts_list = extract_parts(inventory)

# Save the parts to an Excel file
save_parts_to_excel(parts_list)

if __name__ == "__main__":
main()
< /code>
Ich habe es ein paar Mal versucht, es über Chatgpt auszuführen und den Code selbst zu verstehen. Beide scheiterten (kläglich). Ich hoffe, dass jemand die Warnung erkennt und mir sagen kann, welcher Teil dieses Programms nicht funktioniert.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post