我有一个JSON文件,我想遍历这些信息并显示我需要的某些项目。当我遗漏一些信息时,它会抛出一个字段丢失的错误。
需要输入数据示例:
package ID number
delivery address
delivery deadline
delivery city
delivery zip code
package weight
delivery status (e.g., delivered, in route) 期望产出:
ID: 28, Address: 2835 Main St, deadline: EOD (or whatever it is), city: SLC, zip: 12345, weight: 10, delivery status: delivered at 8:35am[
{
"id": 1,
"address": "195 W Oakland Ave",
"city": "Salt Lake City",
"state": "UT",
"zip": 84115,
"deadline": {
"hour": 10,
"minute": 30
},
"kg": 21,
"notes": "Is Being Delivered"
},
{
"id": 2,
"address": "2530 S 500 E",
"city": "Salt Lake City",
"state": "UT",
"zip": 84106,
"deadline": {
"hour": 17,
"minute": 0
},
"kg": 44,
"notes": "Is Being Delivered"
}
def main():
print('Solution executed!')
packageData = loadsJson(os.path.join(main_directory, 'packageTables.json'))
allPackages = [Package(p['id'], p['address'], p['city'], p['state'], p['zip'], p['deadline'], p['kg'], 'IN_ROUTE') for p in packageData]
[print(p) for p in allPackages]
distanceData = loadsJson(os.path.join(main_directory, 'distanceTables.json'))
#Define main
if __name__ == '__main__':
main()发布于 2019-11-15 01:03:31
杰森:
[ {
"id": 1,
"address": "195 W Oakland Ave",
"city": "Salt Lake City",
"state": "UT",
"zip": 84115,
"deadline": {
"hour": 10,
"minute": 30
},
"kg": 21,
"notes": "Is Being Delivered"
},
{
"id": 2,
"address": "2530 S 500 E",
"city": "Salt Lake City",
"state": "UT",
"zip": 84106,
"deadline": {
"hour": 17,
"minute": 0
},
"kg": 44,
"notes": "Is Being Delivered"
}
]Python:
import json
with open("file.json",'r') as f:
var = json.load(f)
allPackages = [(p['id'], p['address'], p['city'], p['state'], p['zip'], p['deadline'], p['kg'], 'IN_ROUTE') for p in var]
[print(p) for p in allPackages]输出:
(1, '195 W Oakland Ave', 'Salt Lake City', 'UT', 84115, {'hour': 10, 'minute': 30}, 21, 'IN_ROUTE')
(2, '2530 S 500 E', 'Salt Lake City', 'UT', 84106, {'hour': 17, 'minute': 0}, 44, 'IN_ROUTE')我不知道您的类包的结构,但建议使用json模块,这样我就能够将所有请求的信息从json提取到python中。也许,如果您可以发布类的定义或构造函数。希望这能有所帮助。
https://stackoverflow.com/questions/58868761
复制相似问题