मेरी जेसन फ़ाइल इसे पसंद करती है और मैं लूप में syslog
तत्व को एक्सेस करने का प्रयास कर रहा हूं।टाइपरर: सूची सूचकांक पूर्णांक होना चाहिए, न कि
{
"cleanup":{
"folderpath":"/home/FBML7HR/logs",
"logfilename":""
},
"preparation":{
"configuration":{
"src_configfile":"src.cfg",
"dest_configfile":"/var/home/FBML7HR/etc/vxn.cfg"
},
"executable_info1":[
{
"login_info":{
"hostname":"10.4.0.xxx",
"username":"***",
"password":"***"
}
},
{
"command":{
"folderpath":"/var/home/FBML7HR/SrcCode/vxnservers/fdchost/north/test/hostsim/",
"processname":"northhostsim",
"parameters":"-d"
}
}
],
"executable_info2":[
{
"login_info":{
"hostname":"10.4.0.xxx",
"username":"***",
"password":"***"
}
},
{
"command":{
"folderpath":"/var/home/FBML7HR/SrcCode/vxnservers/fdchost/north/build/Linux-2.6.18-194.8.1.el5/bin",
"processname":"northhost",
"parameters":"-s brazil -d"
}
}
],
"executable_info3":[
{
"login_info":{
"hostname":"10.4.0.xxx",
"username":"***",
"password":"***"
}
},
{
"command":{
"folderpath":"cd /var/home/xxx/SrcCode/vxnservers/fdchost/north/test/vxnclient_mt",
"processname":"vxnclient_north_mt",
"parameters":"0 320 205 14897 16880 60000 60000 2 2"
}
}
]
},
"execution":[
{
"test_case":{
"scriptname":"/var/home/FBML7HR/test/testcase1.sh",
"testreport":{
"syslog":"/var/log/messages",
"backupsyslog":"backuplogs1.txt",
"clientsimlog":"/var/home/FBML7HR/test/out.log",
"backupclientsimlog":"Clientlogs1.txt"
}
}
},
{
"test_case":{
"scriptname":"/var/home/FBML7HR/test/testcase2.sh",
"testreport":{
"syslog":"/var/log/messages",
"backupsyslog":"backuplogs2.txt",
"clientsimlog":"/var/home/FBML7HR/test/out.log",
"backupclientsimlog":"Clientlogs2.txt"
}
}
}
],
"verification":{
"testreport":{
"syslog":"/var/log/messages",
"backupsyslog":"backuplogs.txt",
"reportfilename":"/var/home/FBML7HR/test/out.log",
"backuplogfile":"Clientlogs.txt"
}
}
}
मैं इस तरह यह कार्य करें:
for i in data['execution']:
cmd = data['execution'][i]['test_case']['scriptname']
लेकिन मैं त्रुटि कह प्राप्त "लेखन त्रुटि: सूची सूचकांक पूर्णांकों होना चाहिए, dict नहीं"। मैं अजगर के लिए नया हूं (और जेसन भी)। क्या कोई सुझाव दे सकता है कि मैं गलत कहां जा रहा हूं?
जाहिर 'मैं' घ एक 'dict' है, इसलिए आप इसे 'डेटा [' निष्पादन '] में अनुक्रमणित करने के लिए उपयोग नहीं कर सकते हैं। क्या यह सिर्फ डेटा ['निष्पादन'] में नहीं होना चाहिए: cmd = i ['test_case'] ['scriptname'] '? – jonrsharpe
लगता है कि 'डेटा' एक सूची है, न कि एक शब्दकोश। क्या आप वाकई इस शब्दकोश में एक संलग्न '[] 'नहीं है? – karthikr