20
20
from qiskit_ibm_experiment .service import IBMExperimentService
21
21
from qiskit_ibm_experiment .exceptions import IBMApiError
22
22
23
+ from qiskit_experiments .framework .json import ExperimentDecoder
23
24
from qiskit_experiments .framework .backend_data import BackendData
24
25
from qiskit_experiments .framework .experiment_data import ExperimentData
25
26
@@ -223,11 +224,14 @@ def retrieve_coefficients_from_service(
223
224
RuntimeError: When stark_coefficients entry doesn't exist in the service.
224
225
"""
225
226
try :
227
+ if isinstance (qubit , (list , tuple )) and len (qubit ) == 1 :
228
+ qubit = qubit [0 ]
226
229
retrieved = service .analysis_results (
227
230
device_components = [f"Q{ qubit } " ],
228
231
result_type = "stark_coefficients" ,
229
232
backend_name = backend_name ,
230
233
sort_by = ["creation_datetime:desc" ],
234
+ json_decoder = ExperimentDecoder ,
231
235
)
232
236
except (IBMApiError , ValueError ) as ex :
233
237
raise RuntimeError (
@@ -238,7 +242,15 @@ def retrieve_coefficients_from_service(
238
242
"Analysis result of stark_coefficients is not found in the "
239
243
"experiment service. Run and save the result of StarkRamseyXYAmpScan."
240
244
)
241
- return retrieved [0 ].result_data ["value" ]
245
+
246
+ result_data_dict = retrieved [0 ].result_data
247
+ if "_value" in result_data_dict :
248
+ # In IBM Experiment service, the result_data["value"] returns
249
+ # a display value for the experiment service webpage.
250
+ # Original data is stored in "_value".
251
+ # TODO: this must be handled by experiment service.
252
+ return result_data_dict ["value" ]
253
+ return result_data_dict ["value" ]
242
254
243
255
244
256
def retrieve_coefficients_from_backend (
0 commit comments