当前位置: 首页 > 知识库问答 >
问题:

from_dict()得到一个意外的关键字参数'index'

侯英达
2023-03-14

我有这样的json:

{
  "formatVersion" : "v1.0",
  "disclaimer" : "This pricing list is for informational purposes only ..."
  "offerCode" : "AmazonEC2",
  "version" : "20181122020351",
  "publicationDate" : "2018-11-22T02:03:51Z",
  "products" : {
    "G5FFNNK98ETA2UBE" : {
      "sku" : "G5FFNNK98ETA2UBE",
      "productFamily" : "Compute Instance",
      "attributes" : {
        "servicecode" : "AmazonEC2",
        "location" : "Asia Pacific (Tokyo)",
        "locationType" : "AWS Region",
        "instanceType" : "c4.4xlarge",
        "currentGeneration" : "Yes",
        "instanceFamily" : "Compute optimized",
        "vcpu" : "16",
        "physicalProcessor" : "Intel Xeon E5-2666 v3 (Haswell)",
        "clockSpeed" : "2.9 GHz",
        "memory" : "30 GiB",
        "storage" : "EBS only",

我正试图使用以下代码将其转换为熊猫数据帧:

df = pd.DataFrame()

for sku, data in json.loads(ec2offer)['products'].items():
    if data['productFamily'] == 'Compute Instance':
        new_df = pd.DataFrame.from_dict(data['attributes'], index=[0])
        df.append(new_df, ignore_index=True)

print(df)    

在添加index=[0]之前,我得到了错误值错误:如果使用所有标量值,你必须传递一个索引所以我补充说,基于从变量中的值构建熊猫数据帧的答案给出值错误:如果使用所有标量值,必须传递一个索引"

现在我得到了这个错误:

from_dict()得到一个意外的关键字参数'index'

TL;博士

忘记上面的代码吧。将上述json中的每个“属性”结构添加到数据帧中自己的行中的最简单方法是什么?

预期产出

instanceType   memory   ...
c4.4xlarge     30 Gib   ...
...            ...      ...

共有1个答案

涂承运
2023-03-14
jsonstr={
"formatVersion": "v1.0",
"disclaimer": "This pricing list is for informational purposes only ...",
"offerCode": "AmazonEC2",
"version": "20181122020351",
"publicationDate": "2018-11-22T02:03:51Z",
"products": {
    "G5FFNNK98ETA2UBE": {
        "sku": "G5FFNNK98ETA2UBE",
        "productFamily": "Compute Instance",
        "attributes": {
            "servicecode": "AmazonEC2",
            "location": "Asia Pacific (Tokyo)",
            "locationType": "AWS Region",
            "instanceType": "c4.4xlarge",
            "currentGeneration": "Yes",
            "instanceFamily": "Compute optimized",
            "vcpu": "16",
            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
            "clockSpeed": "2.9 GHz",
            "memory": "30 GiB",
            "storage": "EBS only"
        }
    },
    "G5FFNNK98ETA2VIB": {
        "sku": "G5FFNNK98ETA2UBE",
        "productFamily": "Compute Instance",
        "attributes": {
            "servicecode": "AmazonEC22",
            "location": "Asia Pacific (Tokyo)",
            "locationType": "AWS Region",
            "instanceType": "c4.4xlarge",
            "currentGeneration": "Yes",
            "instanceFamily": "Compute optimized",
            "vcpu": "16",
            "physicalProcessor": "Intel Xeon E5-2666 v3 (Haswell)",
            "clockSpeed": "2.9 GHz",
            "memory": "30 GiB",
            "storage": "EBS only"
        }
    }
}

}

import pandas as pd
d={}
for product in jsonstr['products'].keys():
   d[product]={}
   d[product]=jsonstr['products'][product]['attributes']
df=pd.DataFrame(d).T.reset_index().drop('index',1)

输出:

df
 类似资料:
  • 我不知道错误发生在哪里,我还尝试了python 3.6。3.此错误也会发生。请帮忙。 我正在训练模特儿。py文件,但我得到以下错误。 它显示了以下内容: 警告:tensorflow:强制所有评估验证的历元数为1。警告:tensorflow:预计评估次数为1,但在列车输入配置中遇到=0。将覆盖为1。警告:tensorflow:使用临时文件夹作为模型目录:C:\Users\wyh\AppData\Lo

  • 如何更改seaborn中lmplot的图形大小? 这是我当前的代码,但显然不接受。 谢谢

  • 我正在尝试使用Flask为Python脚本创建一个可执行文件。由于某些原因,当我试图生成可执行文件时,我得到以下错误: C:\Users\jcalv\Downloads\Cache 以下是我setup.py的内容: 我目前正在使用Python 3.6。5和cx-freeze-5.1。1. 任何帮助都将不胜感激。

  • 我正试图与Featuretools合作,为客户流失数据集开发一个自动化的特征工程工作流。最终结果是一个函数,它接收数据集并为客户标记时间,并构建可用于训练机器学习模型的特征矩阵。 作为本练习的一部分,我尝试执行以下用于绘制直方图的代码,并得到“TypeError:import_optional_dependency()得到一个意外的关键字参数'errors'”。请帮助解决此类型错误。 以下是我收到

  • 我是一种新的熊猫,我正在使用和来枢转我的数据帧,我得到了这个错误: TypeError: Swplevel()得到了一个意外的关键字参数axis 我已经检查了熊猫文件,功能以轴为参数,请问我做错了什么!非常感谢。

  • 对于范围(1,5)内的i: 范围(1,5)内的i在()1中的TypeError回溯(最近一次调用): ---- TypeError: trat()得到了一个意外的关键字参数'runs' 我在Jupyter笔记本中执行代码时遇到这个错误,我还导入了这些库 请帮忙。谢谢你。