Load CSV to Identity Streme
Load CSV to Identity Streme
On this page
- Fetch API Key from env variable "FCAPIKEY"
- Define input, output file names
- Import libraries
- Fetch API key from secure location
- Define input and output files
- Instantiate FullContact client
- Open input file
- Call identity.resolve for each row (record)
- Write output file from stored outputs
#!/usr/bin/env python3
import csv
import os
from fullcontact import FullContactClient
# Fetch API Key from env variable "FC_API_KEY"
API_KEY = os.environ.get('FC_API_KEY')
# Define input, output file names
input_file = './input.csv'
output_filename = './output.csv'
outputs = []
fullcontact_client = FullContactClient(api_key=API_KEY)
with open(input_file, encoding='utf-8') as csvf:
csv_reader = 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(output_filename, 'w', newline='') as output_file:
# Define header based on one row's keys
keys = outputs[0].keys()
out_writer = csv.DictWriter(output_file, keys)
out_writer.writeheader()
for row in outputs:
out_writer.writerow(row)
Import libraries
Get the FullContact Python client here: GitHub - 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 "FC_API_KEY"
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: Client Configuration
Open input file
Converts CSV inputs to python dict objects, which will be sent to Resolve as MultiFieldRequest (MultiFieldRequest Documentation)
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.