简体   繁体   中英

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

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!

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
"""

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM