By za pomocą zdalnego interfejsu API i operacji na wielu obiektach. Pokażę przykład na NDB przy użyciu Pythona, gdzie nasz Test.csv zawiera następujące wartości oddzielonych średnikiem:
1;2;3;4
5;6;7;8
najpierw musimy importować moduły:
import csv
from TestData import TestData
from google.appengine.ext import ndb
from google.appengine.ext.remote_api import remote_api_stub
Następnie musimy utworzyć zdalnego api en:
remote_api_stub.ConfigureRemoteApi(None, '/_ah/remote_api', auth_func, 'your-app-id.appspot.com')
Aby uzyskać więcej informacji na temat korzystania z pilota zdalnego api spojrzeć this answer.
Potem przychodzi główny kod, który zasadniczo wykonuje następujące rzeczy:
- otwiera plik Test.csv.
- Ustawia ogranicznik. Używamy średnika.
- Następnie masz dwie różne opcje tworzenia listy obiektów:
- Korzystanie z funkcji zmniejszania mapy.
- Korzystanie ze sprawdzania listy.
- W końcu wsadę włożyć całą listę podmiotów.
Kod Główny:
# 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)
put_multi operacja zajmuje się również upewniając się wsadowym odpowiedniej liczby jednostek w pojedynczym żądaniu HTTP POST.
Zapraszamy do obejrzenia tej dokumentacji uzyskać więcej informacji:
z trochę dodatkowej pracy, można nawet pobrać dane bezpośrednie z bazy danych SQL lub dowolnego innego źródła danych. –