Load CSV to Identity Streme

Load CSV to Identity Streme

```python Python

!/usr/bin/env python3

import csv import os

from fullcontact import FullContactClient

Fetch API Key from env variable "FCAPIKEY"

APIKEY = os.environ.get('FCAPI_KEY')

Define input, output file names

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)

```

Import libraries

Get the FullContact Python client here: https://github.com/fullcontact/fullcontact-python-client

Fetch API key from secure location

Keep your API key safe! In this case, the API key is stored as an environment variable "FCAPIKEY"

Define input and output files

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

Instantiate FullContact client

Using your API, instantiate the FullContact client. See the full list of configurations here: https://github.com/fullcontact/fullcontact-python-client#client-configuration

Open input file

Converts CSV inputs to python dict objects, which will be sent to Resolve as MultiFieldRequest (https://github.com/fullcontact/fullcontact-python-client#multifieldrequest)

Call identity.resolve for each row (record)

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!

Write output file from stored outputs

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