Skip to content
Fix Code Error

Python JSON TypeError : list indices must be integers or slices, not str

July 14, 2021 by Code Error
Posted By: Anonymous

I am trying to loop through a dataframe but I am getting a for row in i["Attachments"]: TypeError: list indices must be integers or slices, not str
My JSON file has Attachments yet it is giving me errors. I have possibly tried all ways from Stackoverflow to get this issue solved, but to my dismay none of them really worked.
this is my Json file

idx.json

{"Search": {"ReportType": "rda", "KodeEmiten": "ACES;BOGA;PTBA;ERAA;ITMG;TLKM;BBCA;ADRO;ASII;DOID;INDF;JSMR;LPKR;PTPP;PGAS;SRIL;TINS;EXCL;BBNI;BBRI;BMRI;BBTN;SCMA;ABMM;LINK;TPIA;BRPT;TKIM;SMRA;MNCN;INDY;PNLF;APLN;KIJA;WSKT;AKRA;JPFA;AALI;UNTR;SIDO;NATO;WIKA;MAPI;INTP;SSMS;CPIN;SMGR;BSDE;LSIP;MEDC;ASRI;ANTM;BRIS;BTPS;BJBR;BJTM;POWR;CTRA;GGRM;INKP;INDF;ISAT;MDKA;CARE;APIC;TOWR;SMSM;FREN;SOCI;TBIG;UNVR;WSBP;DMAS;BWPT;LPPF;MPPA;MLPL;GIAA;BDMN;HRUM;SSIA;SIMP;SMCB;MYRX;BBKP;BUMI;BMTR;BHIT;AISA;PWON;PPRO;HMSP;FIRE;ADHI;KRAS;KREN;BKSL;TBLA;TAMU;RALS;TARA", "Year": "2019", "Periode": null, "indexfrom": 0, "pagesize": 10}, "ResultCount": 173, "Results": [{"KodeEmiten": "AALI", "File_Modified": "2020-07-28T09:33:52.167", "Report_Period": null, "Report_Year": "2019", "NamaEmiten": "Astra Agro Lestari Tbk", "Attachments": [{"Emiten_Code": "AALI", "File_ID": "8ef70399-e349-4fe6-bf98-b224e11d05a4", "File_Modified": "2020-07-28T09:33:52.167", "File_Name": "AALI_Annual Report_2019.pdf", "File_Path": "http://www.idx.co.id/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/04_Annual Report//2019/AALI/AALI_Annual Report_2019.pdf", "File_Size": 5202426, "File_Type": ".pdf", "Report_Period": null, "Report_Type": "rda", "Report_Year": "2019", "NamaEmiten": "Astra Agro Lestari Tbk"}]}, {"KodeEmiten": "ABMM", "File_Modified": "2020-07-28T09:33:57.473", "Report_Period": null, "Report_Year": "2019", "NamaEmiten": "ABM Investama Tbk", "Attachments": [{"Emiten_Code": "ABMM", "File_ID": "22d8cfba-7ff3-4aac-8325-a5c0a444a170", "File_Modified": "2020-07-28T09:33:57.473", "File_Name": "ABMM_Annual Report 2019_lamp.pdf", "File_Path": "http://www.idx.co.id/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/04_Annual Report//2019/ABMM/ABMM_Annual Report 2019_lamp.pdf", "File_Size": 3877885, "File_Type": ".pdf", "Report_Period": null, "Report_Type": "rda", "Report_Year": "2019", "NamaEmiten": "ABM Investama Tbk"}, {"Emiten_Code": "ABMM", "File_ID": "3e2ebdd6-53d2-42d8-bba2-29bf61fc1e52", "File_Modified": "2020-07-28T09:33:56.37", "File_Name": "ABMM_Annual Report 2019.pdf", "File_Path": "http://www.idx.co.id/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/04_Annual Report//2019/ABMM/ABMM_Annual Report 2019.pdf", "File_Size": 9231076, "File_Type": ".pdf", "Report_Period": null, "Report_Type": "rda", "Report_Year": "2019", "NamaEmiten": "ABM Investama Tbk"}]}, {"KodeEmiten": "ACES", "File_Modified": "2020-07-28T09:34:05.733", "Report_Period": null, "Report_Year": "2019", "NamaEmiten": "Ace Hardware Indonesia Tbk", "Attachments": [{"Emiten_Code": "ACES", "File_ID": "e7ab91d9-db2e-4832-90cc-438321ff46bd", "File_Modified": "2020-07-28T09:34:05.733", "File_Name": "ACES_Annual Report 2019_lamp_03.pdf", "File_Path": "http://www.idx.co.id/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/04_Annual Report//2019/ACES/ACES_Annual Report 2019_lamp_03.pdf", "File_Size": 9264565, "File_Type": ".pdf", "Report_Period": null, "Report_Type": "rda", "Report_Year": "2019", "NamaEmiten": "Ace Hardware Indonesia Tbk"}, {"Emiten_Code": "ACES", "File_ID": "f267a10e-6b18-4d62-a92f-5f42c0ac4064", "File_Modified": "2020-07-28T09:34:05.06", "File_Name": "ACES_Annual Report 2019_lamp_04.pdf", "File_Path": "http://www.idx.co.id/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/04_Annual Report//2019/ACES/ACES_Annual Report 2019_lamp_04.pdf", "File_Size": 5020661, "File_Type": ".pdf", "Report_Period": null, "Report_Type": "rda", "Report_Year": "2019", "NamaEmiten": "Ace Hardware Indonesia Tbk"}, {"Emiten_Code": "ACES", "File_ID": "61305b4e-2754-4f91-ace0-a4925e54b21c", "File_Modified": "2020-07-28T09:33:59.973", "File_Name": "ACES_Annual Report 2019.pdf", "File_Path": "http://www.idx.co.id/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/04_Annual Report//2019/ACES/ACES_Annual Report 2019.pdf", "File_Size": 6840439, "File_Type": ".pdf", "Report_Period": null, "Report_Type": "rda", "Report_Year": "2019", "NamaEmiten": "Ace Hardware Indonesia Tbk"}, {"Emiten_Code": "ACES", "File_ID": "cdf09705-6783-4a9d-a7ec-d35da3430fb1", "File_Modified": "2020-07-28T09:34:01.323", "File_Name": "ACES_Annual Report 2019_lamp_01.pdf", "File_Path": "http://www.idx.co.id/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/04_Annual Report//2019/ACES/ACES_Annual Report 2019_lamp_01.pdf", "File_Size": 9984090, "File_Type": ".pdf", "Report_Period": null, "Report_Type": "rda", "Report_Year": "2019", "NamaEmiten": "Ace Hardware Indonesia Tbk"}, {"Emiten_Code": "ACES", "File_ID": "88d74da3-a999-48eb-b3c1-efc2099acddd", "File_Modified": "2020-07-28T09:34:03.017", "File_Name": "ACES_Annual Report 2019_lamp_02.pdf", "File_Path": "http://www.idx.co.id/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/04_Annual Report//2019/ACES/ACES_Annual Report 2019_lamp_02.pdf", "File_Size": 4370395, "File_Type": ".pdf", "Report_Period": null, "Report_Type": "rda", "Report_Year": "2019", "NamaEmiten": "Ace Hardware Indonesia Tbk"}]}, {"KodeEmiten": "ADHI", "File_Modified": "2020-07-28T09:34:10.553", "Report_Period": null, "Report_Year": "2019", "NamaEmiten": "PT Adhi Karya (Persero) Tbk.", "Attachments": [{"Emiten_Code": "ADHI", "File_ID": "030ef1ea-e1f3-44db-9391-b53de8731576", "File_Modified": "2020-07-28T09:34:10.553", "File_Name": "ADHI_Annual Report 2019.pdf", "File_Path": "http://www.idx.co.id/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/04_Annual Report//2019/ADHI/ADHI_Annual Report 2019.pdf", "File_Size": 9649618, "File_Type": ".pdf", "Report_Period": null, "Report_Type": "rda", "Report_Year": "2019", "NamaEmiten": "PT Adhi Karya (Persero) Tbk."}]}, {"KodeEmiten": "ADRO", "File_Modified": "2020-07-28T09:34:17.037", "Report_Period": null, "Report_Year": "2019", "NamaEmiten": "ADARO ENERGY Tbk", "Attachments": [{"Emiten_Code": "ADRO", "File_ID": "a969fd6b-44ea-4fe8-adb5-ae19308c89d2", "File_Modified": "2020-07-28T09:34:17.037", "File_Name": "ADRO_Annual Report_2019_lamp.pdf", "File_Path": "http://www.idx.co.id/Portals/0/StaticData/ListedCompanies/Corporate_Actions/New_Info_JSX/Jenis_Informasi/01_Laporan_Keuangan/04_Annual Report//2019/ADRO/ADRO_Annual Report_2019_lamp.pdf", "File_Size": 5114026, "File_Type": ".pdf", "Report_Period": null, "Report_Type": "rda", "Report_Year": "2019", "NamaEmiten": "ADARO ENERGY Tbk"}]}]}

And this is my code:

json_data = pd.read_json("idx.json", lines=True)
        for i in json_data["Results"]:
            for row in i["Attachments"]:
                try:
                   # rest of code

I am able to get the values for Results column but getting issues for Attachments. Please help me out!

Solution

I’ve modified the code a little and have used dictionary for easier access and it is working great.

import json

# Opening JSON file
f = open('data.json',)

# returns JSON object as
# a dictionary
data = json.load(f)

# Iterating through the json
# list
for i in data['Results']:
    for row in i["Attachments"]:
        print("Emiten_Code is ", row["Emiten_Code"], ", File_ID is ",row["File_ID"])

# Closing file
f.close()

"""
OUTPUT -
Emiten_Code is  AALI , File_ID is  8ef70399-e349-4fe6-bf98-b224e11d05a4
Emiten_Code is  ABMM , File_ID is  22d8cfba-7ff3-4aac-8325-a5c0a444a170
Emiten_Code is  ABMM , File_ID is  3e2ebdd6-53d2-42d8-bba2-29bf61fc1e52
Emiten_Code is  ACES , File_ID is  e7ab91d9-db2e-4832-90cc-438321ff46bd
Emiten_Code is  ACES , File_ID is  f267a10e-6b18-4d62-a92f-5f42c0ac4064
Emiten_Code is  ACES , File_ID is  61305b4e-2754-4f91-ace0-a4925e54b21c
Emiten_Code is  ACES , File_ID is  cdf09705-6783-4a9d-a7ec-d35da3430fb1
Emiten_Code is  ACES , File_ID is  88d74da3-a999-48eb-b3c1-efc2099acddd
Emiten_Code is  ADHI , File_ID is  030ef1ea-e1f3-44db-9391-b53de8731576
Emiten_Code is  ADRO , File_ID is  a969fd6b-44ea-4fe8-adb5-ae19308c89d2
"""
Answered By: Anonymous

Related Articles

  • How to properly do JSON API GET requests and assign output…
  • How to parse JSON with XE2 dbxJSON
  • Azure Availability Zone ARM Config
  • The 'compilation' argument must be an instance of…
  • Avoid creating new session on each axios request laravel
  • Search match multiple values in single field in…
  • Event Snippet for Google only shows one event while testing…
  • Why does this Azure Resource Manager Template fail…
  • loop and eliminate unwanted lines with beautiful soup
  • Octave using 'for' statement to show two animations…

Disclaimer: This content is shared under creative common license cc-by-sa 3.0. It is generated from StackExchange Website Network.

Post navigation

Previous Post:

Not sure how to display backend data in react app

Next Post:

I tried several options but this error still occurs: org.testng.TestNGException: Check to make sure it can be instantiate

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Get code errors & solutions at akashmittal.com
© 2022 Fix Code Error