【问题标题】:'_io.TextIOWrapper' object has no attribute 'DataFrame' when converting list of dictionaries to pandas dataframe将字典列表转换为熊猫数据框时,“_io.TextIOWrapper”对象没有属性“DataFrame”
【发布时间】:2021-10-28 06:29:35
【问题描述】:

我有一个这样的 JSON 文件:

{
  "project_name": "Lawns & Beyond",
  "flats": [
    {
      "config": "1BHK",
      "carpet_area": "331 sq.ft",
      "carpet_rate": "25000",
      "cost": "8275000",
      "units": "303"
    },
    {
      "config": "1BHK",
      "carpet_area": "361 sq.ft",
      "carpet_rate": "25000",
      "cost": "9025000",
      "units": "300"
    },
    {
      "config": "2BHK",
      "carpet_area": "455 sq.ft",
      "carpet_rate": "25000",
      "cost": "11375000",
      "units": "715"
    },
    {
      "config": "3BHK",
      "carpet_area": "592 sq.ft",
      "carpet_rate": "25000",
      "cost": "14800000",
      "units": "165"
    }
  ]
}

我正在尝试将 project_name 保存在一个变量中,并在公寓之外创建一个 pandas 数据框。

像这样:

import json

d = open('sample_data/input_details.json', 'r')
details = json.load(d)

project_name = details['project_name']

unit_config = []

for i in details['flats']:
    unit_config.append(i)

unit_config = pd.DataFrame(unit_config)

但是,我得到了这个错误

AttributeError: '_io.TextIOWrapper' 对象没有属性 'DataFrame'

【问题讨论】:

  • 如果将import pandas as pd 添加到为我提供的脚本的顶部,这将按预期运行。
  • 对我来说也是如此。正在使用原子上的氢,并看到它在该导入旁边打勾,自然认为该库已加载。不过谢谢。

标签: python json pandas list dataframe


【解决方案1】:

首先可以替换

unit_config = []
for i in details['flats']:
    unit_config.append(i)
unit_config = pd.DataFrame(unit_config)

unit_config = pd.DataFrame(details['flats'])

其次,关于您的问题,您的导入可能有问题,请尝试在脚本开头写import pandas as pd

希望这会有所帮助。

【讨论】:

  • 第二种解决方案更简洁。谢谢。
猜你喜欢
  • 2021-06-03
  • 2017-12-12
  • 2018-11-25
  • 1970-01-01
  • 2016-09-06
  • 2021-09-07
  • 2019-07-18
  • 2018-07-14
  • 2019-05-07
相关资源
最近更新 更多