```python Python
import csv import os
from fullcontact import FullContactClient
APIKEY = os.environ.get('FCAPI_KEY')
inputfile = './input.csv' outputfilename= './output.csv' outputs = []
fullcontactclient = FullContactClient(apikey=API_KEY)
with open(inputfile, encoding='utf-8') as csvf: csvreader = csv.DictReader(csvf)
for row in csv_reader:
try:
# Pass all row K:V pairings to API.
future = fullcontact_client.identity.resolve_async(**row)
result = future.result()
personIds = result.get_personIds()
row['personIds'] = personIds
except Exception as e:
# Generic exception handling. Should be more granular in a production env
print('something went wrong: ', e)
row['personIds'] = []
outputs.append(row)
with open(outputfilename, 'w', newline='') as outputfile: # Define header based on one row's keys keys = outputs[0].keys() outwriter = csv.DictWriter(outputfile, keys) outwriter.writeheader() for row in outputs: outwriter.writerow(row)
```
Get the FullContact Python client here: https://github.com/fullcontact/fullcontact-python-client
Keep your API key safe! In this case, the API key is stored as an environment variable "FCAPIKEY"
This script uses generic names of input and output but these will likely be different depending on your needs/workflows.
Note: This script stores output rows in memory as a List
Using your API, instantiate the FullContact client. See the full list of configurations here: https://github.com/fullcontact/fullcontact-python-client#client-configuration
Converts CSV inputs to python dict objects, which will be sent to Resolve as MultiFieldRequest (https://github.com/fullcontact/fullcontact-python-client#multifieldrequest)
Each row is sent to the identity.resolve API, the future result is collected and the personIds are collected from the response. A new row is generated by appending the resultant personIds to the input row and stored in a list object named "outputs"
Note: The exception handling of this example is very generic. Tread lightly!
This section defines the header from one result (input headers + personId in this case). The list of stored outputs are written to the named output file: output.csv