siehe unter Verwendung von Verwenden von Remote-API und Operationen für mehrere Entitäten. Ich werde ein Beispiel auf NDB mit Python zeigen, wo unsere Test.csv die folgenden Werte mit Semikolon getrennt enthält:
1;2;3;4
5;6;7;8
Zuerst haben wir Module importieren müssen:
import csv
from TestData import TestData
from google.appengine.ext import ndb
from google.appengine.ext.remote_api import remote_api_stub
Dann müssen wir schaffen Fern api Stub:
remote_api_stub.ConfigureRemoteApi(None, '/_ah/remote_api', auth_func, 'your-app-id.appspot.com')
weitere Informationen zur Verwendung von Remote-api haben einen Blick auf this answer.
kommt dann den Hauptcode, der im Grunde führt die folgenden Dinge:
- Öffnet die Test.csv Datei.
- Legt das Trennzeichen fest. Wir verwenden Semikolon.
- Dann haben Sie zwei verschiedene Optionen, um eine Liste von Entitäten zu erstellen:
- Verwenden von Kartenreduzierungsfunktionen.
- Listenverstehen verwenden.
- Am Ende legen Sie die gesamte Liste der Entitäten.
Hauptcode:
# Open csv file for reading.
with open('Test.csv', 'rb') as file:
# Set delimiter.
reader = csv.reader(file, delimiter=';')
# Reduce 2D list into 1D list and then map every element into entity.
test_data_list = map(lambda number: TestData(number=int(number)),
reduce(lambda list, row: list+row, reader)
)
# Or you can use list comprehension.
test_data_list = [TestData(number=int(number)) for row in reader for number in row]
# Batch put whole list into HRD.
ndb.put_multi(test_data_list)
Der put_multi Betrieb kümmert sich auch um sicherstellen zu Charge entsprechende Anzahl von Einheiten in einer einzelnen HTTP-POST-Anfrage.
einen Blick auf diese Dokumentation haben für weitere Informationen:
Mit ein wenig zusätzliche Arbeit, können Sie auch Daten direkt laden aus einer SQL-Datenbank oder einer anderen Datenquelle. –