首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从json查询中获取和打印特定数据?

如何从json查询中获取和打印特定数据?
EN

Stack Overflow用户
提问于 2019-02-05 20:05:29
回答 1查看 285关注 0票数 0

因此,我希望能够根据某个条件提取数据,然后从该数据中打印该查询中的多个项目……这是我到目前为止所做的工作:

代码语言:javascript
运行
复制
def rec():
    qe = JsonQ(r"C:\ShopFloor\data.json")
    res = qe.at('data').where('Status', '=', 1).get()
    for Process, Shortnum in res:
        print(Process['Process'] + " " + Shortnum['Shortnum'])

rec()

这来自以下json文件:

代码语言:javascript
运行
复制
{
    "data": [
        {
            "Shortnum": "34567",
            "Process": "SPA",
            "Status": 1,
            "Start_Time": "2016-12-14 15:54:35",
            "Finish_Time": "2016-12-14 15:56:02"
        },
        {
            "Shortnum": "34567",
            "Process": "Figure",
            "Status": 0,
            "Start_Time": "2016-12-08 15:34:05",
            "Finish_Time": "2016-12-08 15:34:09"
        },

我怎样才能让它正常工作呢?理想情况下,我希望从打印结果中得到这样的响应:

代码语言:javascript
运行
复制
SPA 34567

无法获取当前输出,我收到此错误...我意识到我传递了太多的参数,但是我想不出一个合适的方法……

代码语言:javascript
运行
复制
Exception has occurred: ValueError
too many values to unpack (expected 2)
  File "C:\ShopFloor\main.py", line 101, in rec
    for Process, Shortnum in res:
  File "C:\ShopFloor\main.py", line 106, in <module>
    rec()
EN

Stack Overflow用户

回答已采纳

发布于 2019-02-05 20:11:30

在Python中使用JSON的典型方法是将JSON对象作为Python dict加载

代码语言:javascript
运行
复制
import json
with open('C:/ShopFloor/data.json', 'r') as f:
    qe = json.load(f)
for item in qe['data']:
    if item['Status'] == 1:
        print(f'{item["Process"]} {item["Shortnum"]}')

注意:这使用了Python 3's f-strings (在访问f字符串中的字典值时,请确保交替使用单引号和双引号)。在Python 2中,将最后一行替换为:

代码语言:javascript
运行
复制
        print('{} {}'.format(item['Process'], item['Shortnum']))
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54534067

复制
相关文章

相似问题

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