社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

我试图用python打印json文件中的信息

spxrtzy • 3 年前 • 1606 次点击  

我有这个。JSON文件,告诉我们学校一周将有什么食物。(抱歉是瑞典语)

这是JSON文件

{
  "feedbackAllowed": "True",
  "weeks": [
    {
      "days": [
        {
          "date": 1647820800,
          "items": [
            "Korv Stroganoff serveras med ris",
            "Vegetarisk Stroganoff med sojakorv serveras ris"
          ]
        },
        {
          "date": 1647907200,
          "items": [
            "Pasta serveras med laxsås",
            "Vegetarisk pastasås"
          ]
        },
        {
          "date": 1647993600,
          "items": [
            "Morotslasagne med keso och soltorkad tomat",
            "Kökets klimatsmarta rätt ( vegetarisk lasagne)"
          ]
        },
        {
          "date": 1648080000,
          "items": [
            "Het kycklingsoppa serveras med mjukt bröd och ost samt frukt",
            "Vegetarisk nudelsoppa serveras med mjukt bröd och ost samt frukt"
          ]
        },
        {
          "date": 1648166400,
          "items": [
            "Quorngryta med chili serveras med ris",
            "Kökets klimatsmarta rätt"
          ]
        }
      ],
      "number": 12,
      "year": 2022
    }
  ],
  "school": {
    "URLName": "XXX",
    "id": 000,
    "district": {
      "province": {
        "URLName": "XXX",
        "id": 000,
        "name": "XXX"
      },
      "URLName": "XXX",
      "id": 000,
      "name": "000"
    },
    "name": "000"
  },
  "id": 000,
  "bulletins": [
    {
      "text": "XXX"
    }
  ]
}

我要寻找的是一种只打印JSON文件中的“项目”(所有项目)的方法。我看了很多教程,不断出现以下错误:

TypeError: '_io.TextIOWrapper' object is not callable

我试过用这个

import json
with open('filename.json', 'r') as input:
    obj = json.load(input)
    #make it a string the item is the first one
    print(str(obj['items']))

但我犯了一个错误:

KeyError: 'items'
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129768
 
1606 次点击  
文章 [ 3 ]  |  最新文章 3 年前
Stefrik
Reply   •   1 楼
Stefrik    3 年前

我可以这样接近它们。只是浏览一下目录和清单

for i in range(len(obj['weeks'][0]['days'])):
    print(obj['weeks'][0]['days'][i]['items'])
Andrew Ding
Reply   •   2 楼
Andrew Ding    3 年前

所以 items 您试图访问的属性深入嵌套在JSON结构中。正如Barmar正确指出的那样,为了访问具有“items”属性的对象,您必须首先进入weeks数组,然后是days数组。

obj>周>天>项目

For loops将是您打印这些属性的最佳朋友。

Barmar
Reply   •   3 楼
Barmar    3 年前

你必须在所有的星期和日子里循环。

for week in obj['weeks']:
    for day in week['days']:
        print(day['items'])