«Не удалось устранить ошибку пути» в разделе jsonparse в разделе выполнение задания для внешнего адаптера Chainlink

#chainlink

Вопрос:

У меня есть задание для внешнего адаптера, добавленного в мой локальный узел цепочки. Это ошибка, когда я делаю первоначальный запрос. Моя проблема сводится к синтаксической ошибке или использованию неправильного пути. Но я не знаю, где узнать, каким должен быть синтаксис. Или я неправильно понял путь?

Ниже приведено определение моей работы.

 type = "directrequest" schemaVersion = 1 name = "f1latestresults" contractAddress = "0x765aCc258f3a7b2D8d103D1A9310fc51b07D5425" maxTaskDuration = "0s" observationSource = """  decode_log [type=ethabidecodelog  abi="OracleRequest(bytes32 indexed specId, address requester, bytes32 requestId, uint256 payment, address callbackAddr, bytes4 callbackFunctionId, uint256 cancelExpiration, uint256 dataVersion, bytes data)"  data="$(jobRun.logData)"  topics="$(jobRun.logTopics)"]   decode_cbor [type=cborparse data="$(decode_log.data)"]   fetch [type=bridge name="raceresults" requestData="{\"id\":$(jobSpec.externalJobID),\"data\":{\"position\":\"0\"}}"]     parse [type=jsonparse **path="data,MRData,RaceTable,Races[0],Results[0],number"** data="$(fetch)"]   encode_data [type=ethabiencode abi="(uint256 value)" data="{ \"value\": $(parse) }"]  encode_tx [type=ethabiencode  abi="fulfillOracleRequest(bytes32 requestId, uint256 payment, address callbackAddress, bytes4 callbackFunctionId, uint256 expiration, bytes32 data)"  data="{\"requestId\": $(decode_log.requestId), \"payment\": $(decode_log.payment), \"callbackAddress\": $(decode_log.callbackAddr), \"callbackFunctionId\": $(decode_log.callbackFunctionId), \"expiration\": $(decode_log.cancelExpiration), \"data\": $(encode_data)}"  ]  submit_tx [type=ethtx to="0x765aCc258f3a7b2D8d103D1A9310fc51b07D5425" data="$(encode_tx)"]   decode_log -gt; decode_cbor -gt; fetch -gt; parse -gt; encode_data -gt; encode_tx -gt; submit_tx """ externalJobID = "524e150a-b92b-48a3-b85b-abf7218d73f4"  

Это фрагмент данных, возвращенных в задание.

 {  "MRData": {  "xmlns": "http://ergast.com/mrd/1.4",  "series": "f1",  "url": "http://ergast.com/api/f1/current/last/results.json",  "limit": "30",  "offset": "0",  "total": "20",    "RaceTable": {  "season": "2021",  "round": "17",    "Races": [{  "season": "2021",  "round": "17",  "url": "http://en.wikipedia.org/wiki/2021_United_States_Grand_Prix",  "raceName": "United States Grand Prix",  "Circuit": {  "circuitId": "americas",  "url": "http://en.wikipedia.org/wiki/Circuit_of_the_Americas",  "circuitName": "Circuit of the Americas",  "Location": {  "lat": "30.1328",  "long": "-97.6411",  "locality": "Austin",  "country": "USA"  }  },  "date": "2021-10-24",  "time": "19:00:00Z",    "Results": [{  "number": "33",  "position": "1",  "positionText": "1",  "points": "25",  "Driver": {  "driverId": "max_verstappen",  "permanentNumber": "33",  "code": "VER",  "url": "http://en.wikipedia.org/wiki/Max_Verstappen",  "givenName": "Max",  "familyName": "Verstappen",  "dateOfBirth": "1997-09-30",  "nationality": "Dutch"  },  

С полными результатами можно ознакомиться здесь. http://ergast.com/api/f1/current/last/results.json

Ответ №1:

Можете ли вы попробовать снять квадратные скобки и использовать запятые. т. е. вместо

 Races[0]  

Попробуй

 Races,0  

т.е.:

 data,MRData,RaceTable,Races,0,Results,0,number  

Если это не сработает, пожалуйста, опубликуйте весь свой вывод JSON

Комментарии:

1. Спасибо, Гарри, это все уладило для меня. Теперь работа завершена.