li class="L722" rel="L722"> " return ast.literal_eval(d)\n",
"\n",
"def list_of_dicts(ld):\n",
" '''\n",
" Create a mapping of the tuples formed after \n",
" converting json strings of list to a python list \n",
" '''\n",
" return dict([(list(d.values())[1], list(d.values())[0]) for d in ast.literal_eval(ld)])"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2112d785",
"metadata": {},
"outputs": [],
"source": [
"A = json_normalize(df['status'].apply(only_dict).tolist()).add_prefix('status.')\n",
"A"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9a21694d",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "55d3ccb7",
"metadata": {},
"outputs": [],
"source": [
"pd.json_normalize(list(df['status']))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "072d4638",
"metadata": {},
"outputs": [],
"source": [
"new_temp = df.explode('status')\n",
"new_temp"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c984e701",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"df2 = df.merge(new_temp, left_index=True, right_index=True, suffixes=(\"_test\",\"_status\"))\n",
"df2"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c9081831",
"metadata": {},
"outputs": [],
"source": [
"df2.to_excel(\"test.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5aa598fa",
"metadata": {},
"outputs": [],
"source": [
"temp = df.explode('status.results_scores')\n",
"temp"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c16df369",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"temp"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dde802e6",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"l1 = []\n",
"for l in list_test_status_result:\n",
" l1 = l1 + l['test_status_result']\n",
"df = pd.DataFrame(l1)\n",
"df = pd.concat([df, df[\"service\"].apply(pd.Series)], axis=1)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4b36a671",
"metadata": {},
"outputs": [],
"source": [
"df['results_scores']"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9916d649",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"df1 = pd.DataFrame(df['status'][0])\n",
"temp_df = pd.DataFrame.from_dict(np.concatenate(df1['results_scores']).tolist())\n",
"temp_df[:10]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "024c43da",
"metadata": {},
"outputs": [],
"source": [
"final_df = df1.merge(temp_df, how='inner', left_index=True, right_index=True)\n",
"final_df\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "58ad756c",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"df = pd.DataFrame(list_test_status_result)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5ac35907",
"metadata": {},
"outputs": [],
"source": [
"df = df.explode('test_status_result')\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1f9a585d",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"l0 = []\n",
"for l in list_test_status_result:\n",
" for t in l['test_status_result']:\n",
" for st in t['status']:\n",
" for rs in st['results_scores']:\n",
" temp = t['service'] | (t['target'] or {}) | rs\n",
" temp['sla_name'] = st['sla_name'] \n",
" temp['time_stamp'] = st['time_stamp']\n",
" temp['time_stamp_display'] = st['time_stamp_display']\n",
" l0.append(temp)\n",
"l0[:10]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7c0d9839",
"metadata": {},
"outputs": [],
"source": [
"list_test_status_result = list(db['exfo_api'].find({}, {'test_status_result':1}))\n",
"list_test_status_result"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "956c1225",
"metadata": {},
"outputs": [],
"source": [
"pd.set_option('display.max_rows', 500)\n",
"pd.set_option('display.max_columns', 500)\n",
"pd.set_option('display.width', 1000)\n",
"\n",
"temp = []\n",
"for l in list_test_status_result:\n",
" for d in l['test_status_result']:\n",
" for s in d['status']:\n",
" for rs in s['results_scores']:\n",
" t2 = {rs['name']: [rs['raw_value'], rs['score']]}\n",
" temp.append({**d, **s, **t2})\n",
"temp\n",
"df = pd.json_normalize(temp)\n",
"#df.set_index(['time_stamp_display'], inplace=True)\n",
"df['sla_service'] = df['sla_name'] + \"/\" + df['service_name']\n",
"df['sla_service'].unique()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d6efa7a5",
"metadata": {},
"outputs": [],
"source": [
"f = df[df['sla_service'] == 'BV110_CMI/HTTPS Web Performances']\n",
"f.set_index(['time_stamp_display'], inplace=True)\n",
"f"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "80181787",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "0e1394e6",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}