interaction avec une bdd sous format json
Bonsoir je suis un peu perdu je me suis lancé dans la programmation en python il y a peu j'ai vu d'autres langage pas entièrement car à chaque fois j'ai du recommencer avec un autre langage enfin bref je dois réaliser un programme qui permet de comparer des valeurs entre plusieurs bdd écrite aux format json.
Le but du programme est de télécharger les prix du marché à un instant t et les comparer avec tous les ordre de vente des différente région y en a environ entre 30 et 50 le but du programme est simple vérifier si le prix de l'ordre de vente pour même type_id dans une région données est inférieur au prix du marché calculer la différence en tenant compte du nombre d'article a vendre seulement voilà je bloque avant même de commencer à faire les opération le problème est que dans un dico les clef ne doivent pas être identique hors on retrouve type_id partout ainsi que market_price
Code:
1 2 3 4 5 6 7 8 9 10
| import json
import urllib.request
from urllib.request import urlopen
request = urlopen("https://esi.tech.ccp.is/latest/markets/prices/?datasource=tranquility")
html = ("https://esi.tech.ccp.is/latest/markets/prices/?datasource=tranquility")
data = json.loads(response.read())
data = {row["type_id"] : (row.get("average_price", 0), row.get("adjusted_price", 0)) for row in data}
print (data['key']) |
donc j'arrive à télécharger le fichier mais pas à faire le reste la boucle qui permettrais de comparer les prix des ordres de vente avec le prix de base du marché pour voir si les prix sont plus bas je vous laisse voir par vous même a quoi ressemble le site ainsi que les données en espérant avoir un peu d'aide pour pouvoir réaliser les boucles me permettant de faire un mappage des données pour le comparatif des prix
Le site de l'api
https://esi.tech.ccp.is
l'url donnée pour les prix de base
https://esi.tech.ccp.is/latest/marke...ce=tranquility
l'url pour les prix de la région 10000001
https://esi.tech.ccp.is/latest/marke...pe=sell&page=1
l'url pour les prix de la région 10000002
https://esi.tech.ccp.is/latest/marke...e=sell&page=15
comme vous pouvez le constater y a une grande difficulté là encore c'est que le nombre de page varie énormément et il est impossible de deviner combien de page de vente il y a pour chacune des régions
j'ai vraiment besoin d'aide et vous en remercie à l'avance
bonjour à tous je recherche un peu d'aide ou plutôt de la doc
J'ai un projet qui me dépasse littéralement à faire je dois comparer deux grosse liste de dictionnaire et pour l'instant je n'ai qu'un bout de code qui me permet à peine de télécharger une liste d'order
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| import requests
import json
def load_market_id(identifier) :
print ("Load market with id : %s" %str(identifier))
url = "https://esi.tech.ccp.is/v1/markets/%s/orders/?datasource=tranquility&order_type=sell" %identifier
data = []
page_id = 0
while True :
res = requests.get(url, params={'page': page_id}).json()
if not res : break
data.extend(res)
page_id += 1
return data
def load_all_market_id(start, end) :
data = {}
for identifier in range(start, end) :
values = load_market_id(identifier)
if values :
data[identifier] = values
return data
for identifier, values in load_all_market_id(10000001, 10000065).items():
print (identifier, lenvalues) |
la première fonction pour télécharger les prix ne fonctionne pas cela fais plus d'une semaine que je galère dessus et je ne trouve rien je dois comparer une énorme liste de dico avec une bien plus grosse encore (de quoi faire planter l'environnement si je le lance en entier et pour ça j'ai besoin de repère et y a aucun tuto qui parle des hashmap en français sur youtube je dois comparer un item_id de la liste des sell order avec son ite_id de même valeur et ensuite le prix et enfin la quantité et selon le résultat du profit l'afficher mais je ne sais pas comment tout les tuto vidéos sur les hashmap en python sont en anglais