Ma présentation sur ElasticSearch à l'Apéro Web Nancy du 25 septembre 2014 : slides, jeu de données et démos
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

fetch_brasseries.py 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/env python2
  2. import json
  3. import os
  4. import os.path
  5. import sys
  6. import requests
  7. DIR = os.path.join("dataset", "brasseries")
  8. URL = "http://api.brewerydb.com/v2/"
  9. KEY = ""
  10. def search(lat, lng):
  11. res = requests.get(URL + "search/geo/point",
  12. params={
  13. "key": KEY,
  14. "lat": lat,
  15. "lng": lng,
  16. "radius": 100,
  17. "units": "km"
  18. })
  19. data = res.json()
  20. for doc in data["data"]:
  21. filename = os.path.join(DIR, doc["breweryId"] + ".json")
  22. if os.path.exists(filename):
  23. continue
  24. print doc["brewery"]["name"]
  25. doc["location"] = {
  26. "lat": doc["latitude"],
  27. "lon": doc["longitude"],
  28. }
  29. del doc["latitude"]
  30. del doc["longitude"]
  31. with open(filename, "w") as out:
  32. json.dump(doc, out)
  33. if __name__ == "__main__":
  34. if KEY == "":
  35. print "Vous devez vous créer une clef d'API BreweryDB et l'ajouter à ce fichier !"
  36. sys.exit(1)
  37. if not os.path.isdir(DIR):
  38. os.makedirs(DIR)
  39. search(48.6936, 6.1846) # Nancy
  40. search(48.58476, 7.750576) # Strasbourg
  41. search(50.846686, 4.352425) # Bruxelles