Chers chercheurs, Merci pour votre travail acharné aujourd'hui. Il était difficile de copier les réalisations entrées dans le researchmap, j'ai donc analysé API. Allons jusqu'à créer un fichier Word à partir de Python.
Veuillez consulter ici. Mais c'est une ligne:
bash
pip install python-docx
Je suis une personne JSON faible, alors que sont @ id '' et
@ type ''? !! ?? !! Je l'ai fait avec des larmes.
Veuillez me faire savoir s'il existe une méthode plus efficace.
(Au fait, je ne comprends pas vraiment la portée du mot "parse". Je pense qu'il fait référence au point où vous obtenez le JSON et récupérez les informations nécessaires, mais dites-moi si vous faites une erreur. )
J'ai fait référence à ici.
python
import requests
import json
url = "https://api.researchmap.jp/kage"
response = requests.get(url)
jsonData = response.json()
Vous pouvez obtenir des données comme celles-ci. (Quand j'ai utilisé l'instruction print, elle était écrite de manière serrée sans saut de ligne, donc je ne l'ai pas utilisée.)
Je suis une personne JSON faible, je fais donc défiler le JSON affiché et examine de plus près la structure. Il semble que les données de performance soient stockées dans la partie appelée `` @ graph ''.
Affichons certains des éléments de `` @ graph ''.
python
for i in range(len(jsonData['@graph'])):
print(i)
print(jsonData['@graph'][i]['@type'])
Résultat de sortie
0
research_interests
1
research_areas
2
research_experience
3
published_papers
4
books_etc
5
misc
6
presentations
7
awards
8
research_projects
9
education
10
teaching_experience
11
committee_memberships
Les données de performance y sont incluses. Extrayons les documents publiés de l'élément 3.
J'ai pu l'afficher comme ça avec le script suivant.
python
for i in range(len(jsonData['@graph'][3]['items'])):
author_list = []
authors = jsonData['@graph'][3]['items'][i]['authors']['en']
title = jsonData['@graph'][3]['items'][i]['paper_title']['en']
journal = jsonData['@graph'][3]['items'][i]['publication_name']['en']
date = jsonData['@graph'][3]['items'][i]['publication_date']
vol = jsonData['@graph'][3]['items'][i]['volume']
doi = jsonData['@graph'][3]['items'][i]['identifiers']['doi'][0]
#Organiser l'apparence de l'auteur
for j in range(len(authors)):
author = ''.join(authors[j].values())
author_list.append(author)
print(', '.join(author_list))
print(title)
print(journal, vol, date)
print('doi:', doi)
print('')
Vous pouvez copier ceci dans un fichier Word, mais c'est un gros problème, alors faisons de notre mieux.
Je veux faire une liste de réalisations avec des chiffres. Tout d'abord, testons l'écriture de la liste. J'ai fait référence à ici.
python
from docx import Document
doc = Document()
docx_file = 'test.docx'
p0 = doc.add_paragraph('Item 1', style='List Number')
p1 = doc.add_paragraph('Item 2', style='List Number')
doc.save(docx_file)
Un fichier Word a été créé et la liste a été écrite.
Un petit changement par rapport à la déclaration imprimée ci-dessus.
python
#Liste pour stocker toutes les données papier
papers = []
for i in range(len(jsonData['@graph'][3]['items'])):
author_list = []
authors = jsonData['@graph'][3]['items'][i]['authors']['en']
title = jsonData['@graph'][3]['items'][i]['paper_title']['en']
journal = jsonData['@graph'][3]['items'][i]['publication_name']['en']
date = jsonData['@graph'][3]['items'][i]['publication_date']
vol = jsonData['@graph'][3]['items'][i]['volume']
doi = jsonData['@graph'][3]['items'][i]['identifiers']['doi'][0]
#Organiser l'apparence de l'auteur
for j in range(len(authors)):
author = ''.join(authors[j].values())
author_list.append(author)
#Formatez le papier et stockez-le dans la liste
paper = [', '.join(author_list), title, ', '.join([journal, vol, date]), ' '.join(['doi:', doi])]
papers.append('\n'.join(paper))
Écrivez la liste des `` papiers '' dans Word.
J'ai fait référence à ici pour l'ajout de titres.
python
doc = Document()
docx_file = 'publication.docx'
#Titre
heading = doc.add_heading('Réalisations de recherche', level=1)
subheading = doc.add_heading('Papier original', level=2)
#Liste des articles
for paper in papers:
p = doc.add_paragraph(paper, style='List Number')
doc.save(docx_file)
Les données ont été écrites dans le fichier Word! Le reste est juste pour organiser la belle apparence. En regardant ici, rendons toutes les couleurs de police noires pour le moment.
python
from docx.shared import RGBColor
doc = Document()
docx_file = 'publication.docx'
#Titre
heading = doc.add_heading('Réalisations de recherche', level=1)
heading.runs[0].font.color.rgb = RGBColor(0, 0, 0)
subheading = doc.add_heading('Papier original', level=2)
subheading.runs[0].font.color.rgb = RGBColor(0, 0, 0)
#Liste des articles
for paper in papers:
p = doc.add_paragraph(paper, style='List Number')
doc.save(docx_file)
Vous pouvez maintenant créer un fichier Word de votre liste de réalisations à partir de researchmap sans avoir à le copier et le coller manuellement!
Recommended Posts