首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从json文件中返回特定项并打印到屏幕上。

从json文件中返回特定项并打印到屏幕上。
EN

Stack Overflow用户
提问于 2019-11-15 00:50:45
回答 1查看 46关注 0票数 0

我有一个JSON文件,我想遍历这些信息并显示我需要的某些项目。当我遗漏一些信息时,它会抛出一个字段丢失的错误。

需要输入数据示例:

代码语言:javascript
复制
package ID number
delivery address
delivery deadline 
delivery city 
delivery zip code 
package weight 
delivery status (e.g., delivered, in route) 

期望产出:

代码语言:javascript
复制
ID: 28, Address: 2835 Main St, deadline: EOD (or whatever it is), city: SLC, zip: 12345, weight: 10, delivery status: delivered at 8:35am
代码语言:javascript
复制
[
    {
        "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()
EN

回答 1

Stack Overflow用户

发布于 2019-11-15 01:03:31

杰森:

代码语言:javascript
复制
 [   {
        "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:

代码语言:javascript
复制
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]

输出:

代码语言:javascript
复制
(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中。也许,如果您可以发布类的定义或构造函数。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58868761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档