Det var rätt mycket som behövde testas för detta, där det huvudsakliga målet var att ersätta sqlite3-databasen med en externt lagrad fil, för att förhoppningsvis kunna lägga sin Jupyter-bok på Googles Colaboratory.
Det mesta misslyckades för att det blev fel datatyper på allting. Det var strängar, bytes och listor hit och dit, och de flesta gick inte att kontrollera datatypen på, så det gick inte att göra decode och encode för att få första (och näst näst sista) kolumnen att bli strängar så som de borde. Varken np.save, np.savetxt eller with open('hela_db_json.txt', 'w', encoding='utf8') as json_file, och jag lyckades heller inte konvertera till och från json så som jag trodde att jag skulle.
Men på det här sättet slipper man json och allting annat. Här finns gisten om inbäddningen slutar funka.
import pickle | |
import requests | |
#Skapa picklad fil från np.array (db_contents) | |
with open('pick.npy', 'wb') as pickle_file: | |
pickle.dump(db_contents, pickle_file) | |
#Läsa in filen lokalt. | |
with open('pick.npy', 'rb') as pickle_file: | |
groda = pickle.load(pickle_file) #groda blir snällt en np.array igen. | |
#Om man har lagt upp filen som db.npy på en server läser man in den med requests | |
url = 'http://infontology.org/dev/db.npy' | |
fraan_fil = requests.get(url, allow_redirects = True) | |
groda2 = pickle.loads(fraan_fil.content) #Obs pickle.loads, inte pickle.load | |
#groda2 blir ens np.array igen |
/Simon