Python 使用过滤json和获取TypeError:字符串索引必须是整数

Python 使用过滤json和获取TypeError:字符串索引必须是整数,python,Python,我试图将.csv文件转换为json,需要过滤json中的一些字段,并获取错误信息 like tranId = 1; import pandas as pd import numpy as np import json from collections import defaultdict df = pd.read_csv('E:/Transactional_data/transaction.csv') #print(df); index = df.index columns = df.col

我试图将.csv文件转换为json,需要过滤json中的一些字段,并获取错误信息

like tranId = 1;

import pandas as pd
import numpy as np
import json
from collections import defaultdict
df = pd.read_csv('E:/Transactional_data/transaction.csv')
#print(df);

index = df.index
columns = df.columns
values = df.values

#print(index)
#print(columns)
#print(values)

df.columns = df.columns.str.strip();
#print(df.columns);
jsondf = df.to_json( orient='index')
#print(jsondf);
todos = json.loads(json.dumps(jsondf))
print(todos)

CL_NOME = type(todos['tranId'])


{  
   "0":{  
      "tranId":1,
      "prodId":10,
      "tranAmt":1000.0,
      "tranDt":" 2018-10-01 10:10:10"
   },
   "1":{  
      "tranId":2,
      "prodId":10,
      "tranAmt":1000.0,
      "tranDt":" 2018-10-01 10:15:10"
   },
   "2":{  
      "tranId":3,
      "prodId":20,
      "tranAmt":2000.0,
      "tranDt":" 2018-10-01 10:15:20"
   },
   "3":{  
      "tranId":4,
      "prodId":10,
      "tranAmt":1000.0,
      "tranDt":" 2018-10-01 10:10:10"
   },
   "4":{  
      "tranId":5,
      "prodId":30,
      "tranAmt":3000.0,
      "tranDt":" 2018-10-01 10:20:10"
   },
   "5":{  
      "tranId":6,
      "prodId":20,
      "tranAmt":2000.0,
      "tranDt":" 2018-10-01 10:15:30"
   }
}
TypeError:字符串索引必须是整数


您的
todos
是一个字符串(似乎您希望成为一个dict),您应该使用:

todos = json.loads(jsondf)
type(todos['0']['tranId'])  # which will be <class 'int'>
即使如此,如果您想要获取
tranId
字段的类型,您将得到一个keyrerror,您应该使用:

todos = json.loads(jsondf)
type(todos['0']['tranId'])  # which will be <class 'int'>

您好,我正在尝试获取todos['tranId']==1的输出,但是获取类型错误。请提前感谢为什么
json.loads(json.dumps(jsondf))
?如果删除
json.dumps()
(仅使用加载),则可以使用类似于-
print(f'todos zero tranid是{todos[“0”][“tranid”]})的方式访问“orient='index'”json
,以获得1的值。这就是你想要的吗?请更加努力地编辑你的问题/解释你想用你在问题中公开的当前代码完成什么