cibinjoseph / json2txttree

Python code that converts JSON data to tree-like output
MIT License
13 stars 4 forks source link

Index Error #3

Open sjainam opened 1 year ago

sjainam commented 1 year ago

For my json it's showing IndexError: list index out of range At line _getHierarchy(jsonData[0], '', file, _prefix, _last=True)

cibinjoseph commented 1 year ago

Could you share a minimal example json data so I can try reproducing the error?

Brian417-cup commented 2 months ago

I have also meet this question, correspopnding error json is like this:

{ "code": 200, "data": { "alert_strategy_ids": [], "countdown": 0, "create_by": "admin", "create_time": "2023-08-09 07:32:59", "crontab": "", "del_flag": 0, "description": "", "id": "e96a8e8a8ef140678873c1f3e548920a", "name": "数据采集示例-股票历史数据采集", "params": { "code": "import akshare as ak\nfrom utils.etl_utils import get_writer_model\nfrom utils.common_utils import md5, format_date\n\n\ndef transform_stock_data(stock_data, stock_code, stock_name):\n \"\"\"\n 转换数据\n :param stock_data:\n :return:\n \"\"\"\n field_map = {\n \"日期\": \"time\",\n \"最高\": \"high\",\n \"最低\": \"low\",\n \"开盘\": \"open\",\n \"收盘\": \"close\",\n \"成交量\": \"volume\",\n \"成交额\": \"amount\",\n \"换手率\": \"turnover\",\n \"振幅\": \"amplitude\",\n \"涨跌幅\": \"chg\",\n \"涨跌额\": \"change_amount\"\n }\n stock_data = stock_data.rename(columns=field_map)\n stock_data['symbol'] = stock_code\n stock_data['name'] = stock_name\n result_list = []\n for k, row in stock_data.iterrows():\n row = row.to_dict()\n row['time'] = format_date(row['time'], res_type='datetime')\n hash_key = f\"{row['symbol']}{row['time']}\"\n row['_id'] = md5(hash_key)\n result_list.append(row)\n return result_list\n\n\nflag, writer = get_writer_model({\n \"model_id\": \"f4f58112235f4625a72f880a373ff697\",\n \"load_type\": \"upsert\",\n \"only_fields\": \"_id\"\n})\nif not flag:\n logger.exception(f\"获取写入模型失败\")\n# 获取股票代码-名称 map\ncode_id_dict = {}\nstock_zh_a_spot_em_df = ak.stock_zh_a_spot_em()\nfor k, row in stock_zh_a_spot_em_df.iterrows():\n row = row.to_dict()\n code_id_dict[row['代码']] = row['名称']\ni = 1\nfor stock_code in code_id_dict:\n try:\n stock_name = code_id_dict[stock_code]\n if stock_name == 1:\n stock_name = 'unknow'\n stock_data = ak.stock_zh_a_hist(symbol=stock_code, adjust=\"qfq\")\n stock_data = transform_stock_data(stock_data, stock_code, stock_name)\n writer.write(stock_data)\n logger.info(f\"{i}/{len(code_id_dict)}, 获取数据成功,股票代码:{stock_code},数据量:{len(stock_data)}\")\n except Exception as e:\n logger.info(f\"获取数据失败,{e}\")\n logger.exception(e)\n i += 1", "run_type": "code" }, "priority": 1, "retry": 0, "run_queue": "default", "run_type": 1, "running_id": "015fcc8d-a133-4612-9a90-cd4bb94a179a", "sort_no": 1.0, "status": 0, "task_type": 1, "template_code": "PythonTask", "trigger_date": [], "trigger_type": 1, "update_by": "", "update_time": "2023-12-24 09:01:17" }, "msg": "ok" }

And I first discover the error comes from the list has no element and then encounter this problem.