我正在尝试从下面的json获取一些数据
[
{
"company": "XYZ",
"companyAddress": "PQR",
"staffDetails": [
{
"employeeCount": {
"jobLevel1": "9",
"jobLevel2": "10",
"jobLevel3": "11"
},
"otherStaff": {
"jobLevel1": "99",
"jobLevel2": "100"
}
}
]
},
{
"company": "XXX",
"companyAddress": "YYY",
"staffDetails": [
{
"employeeCount": {
"jobLevel1": "9",
"jobLevel2": "10",
"jobLevel3": "11"
},
"otherStaff": {
"jobLevel1": "99",
"jobLevel2": "100"
}
}
]
}
]
我要获取的数据是可配置的。 e、 下面是我想要的2个细节
config.properties
[details]
reqparameters=staffDetails.employeeCount.joblevel1 ,staffDetails.otherStaff.joblevel2
myPython代码如下所示-
import configparser
import json
config=configparser.RawConfigParser()
config.read('config.properties')
parameters=config.get('details','reqparameters')
splitedValue=responseDetails.split(",")
resp=''' [
{
"company": "XYZ",
"companyAddress": "PQR",
"staffDetails": [
{
"employeeCount": {
"jobLevel1": "9",
"jobLevel2": "10",
"jobLevel3": "11"
},
"otherStaff": {
"jobLevel1": "99",
"jobLevel2": "100"
}
}
]
},
{
"company": "XXX",
"companyAddress": "YYY",
"staffDetails": [
{
"employeeCount": {
"jobLevel1": "9",
"jobLevel2": "10",
"jobLevel3": "11"
},
"otherStaff": {
"jobLevel1": "99",
"jobLevel2": "100"
}
}
]
}
]'''
#x = json.loads(resp, object_hook=lambda d: SimpleNamespace(**d))
x = json.loads(resp)
for property in splitedValue:
for jNode in x:
print(jNode[property])
print(jNode.property)
尝试了两种打印方式(jNode[property])&;打印(jNode.property)和x=json.loads(resp,object_hook=lambda d:SimpleNamespace(**d))但它不起作用由于我的输入是可配置的,所以我无法使用jNode对其进行编码,因此需要使用从属性文件中读取的变量属性动态地对其进行编码
这不是Python中JSON处理如何访问您需要使用的部分:
您的数据中有一个问题,配置文件显示
joblevel1
,但json中的键是jobLevel1
(大写L) 另一个问题是staffDetails
是一个列表,所以你知道它总是一个元素吗?还是会更多直接在Python中这样做会很麻烦,例如
就我个人而言,我会考虑对JSON和配置文件进行更改,以使它们更好地协同工作
相关问题 更多 >
编程相关推荐