Python 使用过滤json和获取TypeError:字符串索引必须是整数
我试图将.csv文件转换为json,需要过滤json中的一些字段,并获取错误信息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
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的值。这就是你想要的吗?请更加努力地编辑你的问题/解释你想用你在问题中公开的当前代码完成什么