mirror of
https://github.com/alanorth/cgspace-notes.git
synced 2024-10-23 01:13:01 +02:00
40 lines
853 B
Markdown
40 lines
853 B
Markdown
|
---
|
||
|
title: "August, 2024"
|
||
|
date: 2024-08-08T23:07:00-07:00
|
||
|
author: "Alan Orth"
|
||
|
categories: ["Notes"]
|
||
|
---
|
||
|
|
||
|
## 2024-08-08
|
||
|
|
||
|
- While working on the CGIAR Climate Change Synthesis I learned some new tricks with OpenRefine
|
||
|
|
||
|
<!--more-->
|
||
|
|
||
|
- The first was to retrieve affiliations from OpenAlex and extract them from JSON with this GREL:
|
||
|
|
||
|
```
|
||
|
forEach(
|
||
|
value.parseJson()['authorships'],
|
||
|
a,
|
||
|
forEach(
|
||
|
a.parseJson()['institutions'],
|
||
|
i,
|
||
|
i['display_name']
|
||
|
).join("||")
|
||
|
).join("||")
|
||
|
```
|
||
|
|
||
|
- It is a nested `forEach` to extract all institutions for all authors
|
||
|
- Second was a better way to deduplicate lists in Jython while preserving list order:
|
||
|
|
||
|
```python
|
||
|
# better dedupe preserves order
|
||
|
seen = set()
|
||
|
deduped_list = [x for x in value.split("||") if x not in seen and not seen.add(x)]
|
||
|
|
||
|
return "||".join(deduped_list)
|
||
|
```
|
||
|
|
||
|
<!-- vim: set sw=2 ts=2: -->
|