Je suis nouveau sur python et Django. J'essaye la bibliothèque python "scholarly.py" pour recueillir l'URL de l'article (en pdf ou à eprint) sur une page Web django.

Voici à quoi ressemble l'exemple d'entrée:

>>> search_query = scholarly.search_pubs('Perception of physical stability and center of mass of 3D objects')
>>> print(next(search_query))

Voici à quoi ressemble la sortie:

{'bib': {'abstract': 'Humans can judge from vision alone whether an object is '
                 'physically stable or not. Such judgments allow observers '
                 'to predict the physical behavior of objects, and hence '
                 'to guide their motor actions. We investigated the visual '
                 'estimation of physical stability of 3-D objects (shown '
                 'in stereoscopically viewed rendered scenes) and how it '
                 'relates to visual estimates of their center of mass '
                 '(COM). In Experiment 1, observers viewed an object near '
                 'the edge of a table and adjusted its tilt to the '
                 'perceived critical angle, ie, the tilt angle at which '
                 'the object',
     'author': ['SA Cholewiak', 'RW Fleming', 'M Singh'],
     'cites': '23',
     'eprint': 'https://jov.arvojournals.org/article.aspx?articleID=2213254',
     'gsrank': '1',
     'title': 'Perception of physical stability and center of mass of 3-D '
              'objects',
     'url': 'https://jov.arvojournals.org/article.aspx?articleID=2213254',
     'venue': 'Journal of vision',
     'year': '2015'},
 'citations_link': '/scholar?cites=15736880631888070187&as_sdt=5,33&sciodt=0,33&hl=en',
 'filled': False,
 'source': 'scholar',
 'url_add_sclib': '/citations?hl=en&xsrf=&continue=/scholar%3Fq%3DPerception%2Bof%2Bphysical%2Bstability%2Band%2Bcenter%2Bof%2Bmass%2Bof%2B3D%2Bobjects%26hl%3Den%26as_sdt%3D0,33&citilm=1&json=&update_op=library_add&info=K8ZpoI6hZNoJ&ei=ewEtX7_JOIvrmQHcvJqoDA',
 'url_scholarbib': '/scholar?q=info:K8ZpoI6hZNoJ:scholar.google.com/&output=cite&scirp=0&hl=en'}

Comme vous pouvez le voir, cette sortie ressemble à JSON mais ce n'est pas JSON. Que dois-je faire si je veux obtenir uniquement la valeur "url" de cette sortie.

Je vous remercie.

0
Ikram Qureshi 29 août 2020 à 13:09

2 réponses

Meilleure réponse

Merci Robin.

>>> next(search_query)['bib']['url']

Cela n'a pas fonctionné mais cela m'a conduit à la bonne réponse. lequel est:

>>> next(search_query).bib['url']

Merci encore :)

0
Ikram Qureshi 29 août 2020 à 13:17

L'objet que vous obtenez renvoyé par l'itérateur est très probablement un dictionnaire Python et vous pouvez y accéder en tant que tel:

>>> next(search_query)['bib']['url']
'https://jov.arvojournals.org/article.aspx?articleID=2213254'

En regardant un peu la documentation de ce script que vous pourriez avoir pour jouer avec la fonction .fill aussi.

0
Robin De Schepper 29 août 2020 à 10:11