[Archivesspace_Users_Group] Adding an element with the API

Karen Miller k-miller3 at northwestern.edu
Fri Dec 18 13:20:00 EST 2020

Thank you, Michelle!

Yes, if you don’t mind sending the script, I’d really appreciate it. This looks like what I need, but I think having the script might be useful.


From: archivesspace_users_group-bounces at lyralists.lyrasis.org <archivesspace_users_group-bounces at lyralists.lyrasis.org> On Behalf Of Michelle Paquette
Sent: Friday, December 18, 2020 12:04 PM
To: Archivesspace Users Group <archivesspace_users_group at lyralists.lyrasis.org>
Subject: Re: [Archivesspace_Users_Group] Adding an element with the API

Hi Karen,

I think you're getting the error because it's looking to set those values on a file version that already exists, and the file version doesn't exist yet.

I have a script that does something similar and what I've done is create a definition for a new file version, and then done an "append" on the record in question (record being the digital object).

def add_thumbnail(thumbnail_uri):
    note_dict =  {'file_uri': thumbnail_uri,
    'publish': True, #change to False if you do not want the file version to be published.
    'xlink_actuate_attribute': 'onLoad',
    'xlink_show_attribute': 'embed',
    'use_statement': 'image-thumbnail',
    'jsonmodel_type': 'file_version'

Later I have record['file_versions'].append(add_thumbnail)

thumbnail_uri is coming from a spreadsheet. If seeing the full script is helpful for you please let me know and I'd be happy to share it with you.


On Fri, Dec 18, 2020 at 12:48 PM Karen Miller <k-miller3 at northwestern.edu<mailto:k-miller3 at northwestern.edu>> wrote:
I hope there are still some folks around to think about an API problem I’m having!

We’re updating URLs in our digital objects. I can easily update the URL that exists in digital objects, using Python syntax like this:

digital_object_json['file_versions'][0]['file_uri'] = permalink

post_record = requests.post<https://urldefense.com/v3/__http:/requests.post__;!!Dq0X2DkFhyF93HkjWTBQKhk!FM_atqifl5z9WUFHxd0sKcmtc-C-nYZGSNcAH-NEN41PVE71q3zKB8X96v264rUBCqnUIrH0$>(f"{api_url}/{digital_object_uri}", headers=headers, json=digital_object_json).json()

where “permalink” is a value I’ve read in from a spreadsheet. This works just fine for me. But I wanted to get fancy and add a second URL as a thumbnail (I can do this through the staff interface and it works the way I anticipate) as well as a couple of notes. I thought that the syntax would be straightforward:

digital_object_json['file_versions'][1]['file_uri'] = thumbnail
digital_object_json['notes'][0]['content'] = note1
digital_object_json['notes'][0]['jsonmodel_type'] = 'note_digital_object'
digital_object_json['notes'][0]['publish'] = False
digital_object_json['notes'][0]['type'] = 'note'
digital_object_json['notes'][1]['content'] = note2
digital_object_json['notes'][1]['jsonmodel_type'] = 'note_digital_object'
digital_object_json['notes'][1]['publish'] = False
digital_object_json['notes'][1]['type'] = 'note'
where “thumbnail”, “note1”, and “note2” are values from the spreadsheet. However, I’m getting this error for each of these statements:

IndexError: list index out of range

because those aren’t already in the JSON that I’ve retrieved. How do I add to the JSON? I’m not experienced enough with JSON or with Python and am looking for some basic help. Any advice will be appreciated!

Best regard and happy holidays,

Karen D. Miller
Monographic Cataloger/Metadata Specialist
Northwestern University Libraries
Northwestern University
1970 Campus Drive
Evanston, IL 60208
k-miller3 at northwestern.edu<mailto:k-miller3 at northwestern.edu>

Archivesspace_Users_Group mailing list
Archivesspace_Users_Group at lyralists.lyrasis.org<mailto:Archivesspace_Users_Group at lyralists.lyrasis.org>

Michelle Paquette
Metadata & Technical Services Archivist
Special Collections
Smith College
mpaquette at smith.edu<mailto:mpaquette at smith.edu>

Please note: In light of COVID-19, the Libraries are offering contactless pickup, and all other services will continue to be offered remotely. Visit bit.ly/SCLcovid-19<https://urldefense.com/v3/__http:/bit.ly/SCLcovid-19__;!!Dq0X2DkFhyF93HkjWTBQKhk!FM_atqifl5z9WUFHxd0sKcmtc-C-nYZGSNcAH-NEN41PVE71q3zKB8X96v264rUBChRVz_a6$> for full details.

Please send any questions you may have to libraryhelp at smith.edu<mailto:libraryhelp at smith.edu> and they will be answered as soon as possible. Special Collections reference service<mailto:specialcollections at smith.edu> is active, but limited. For information about Smith College’s response to Covid-19, please visit the college’s official website<https://urldefense.com/v3/__https:/www.smith.edu/student-life/health-wellness/coronavirus__;!!Dq0X2DkFhyF93HkjWTBQKhk!FM_atqifl5z9WUFHxd0sKcmtc-C-nYZGSNcAH-NEN41PVE71q3zKB8X96v264rUBCpNSNyOQ$>.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lyralists.lyrasis.org/pipermail/archivesspace_users_group/attachments/20201218/fbe23973/attachment.html>

More information about the Archivesspace_Users_Group mailing list