Использование json и запросы на возврат запроса graphql - PullRequest
0 голосов
/ 15 апреля 2020

Я хочу извлечь строку 'Уникальные цепочки белков: 1' из этой записи, используя запрос graphQL.

Я видел здесь , этот один подход было бы сделать это:

import requests
import json
import pandas as pd

query = 'query {entries(entry_ids%3A["11AS"]) {rcsb_id rcsb_entry_info { polymer_entity_count_protein }}}'

url = 'http://data.rcsb.org/graphql/'
r = requests.post(url,json={'query':query})
json_data = json.loads(r.text)
print(json_data)

Однако я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "test_graphql.py", line 9, in <module>
    json_data = json.loads(r.text)
  File "/Users/kela/anaconda/envs/py3/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/Users/kela/anaconda/envs/py3/lib/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Users/kela/anaconda/envs/py3/lib/python3.6/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Относительно указанного запроса c, который был использован, я был отправлен от персонала, работающего с базой данных кто сказал мне, что правильный запрос:

[http://data.rcsb.org/graphql/index.html?query=query {
entries(entry_ids%3A["11AS"]) {
rcsb_id
rcsb_entry_info {
polymer_entity_count_protein
}
}
}|http://data.rcsb.org/graphql/index.html?query=query%20%7B%0A%20%20entries(entry_ids%3A%5B%2211AS%22%5D)%20%7B%0A%20%20%20%20rcsb_id%0A%20%20%20%20rcsb_entry_info%20%7B%0A%20%20%20%20%20%20polymer_entity_count_protein%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D]

(и у меня возникают проблемы с реализацией отправленного ими запроса в python).

Может ли кто-нибудь помочь мне извлечь информацию Я нуждаюсь? т.е. в этом случае он должен вернуть:

11AS  1
...