【问题标题】:how to create a dataframe to generate json in the given format如何创建数据框以生成给定格式的 json
【发布时间】:2018-04-11 06:07:22
【问题描述】:

我需要从我的数据框生成一个 json,但我尝试了多种格式的 df,但仍然无法获得所需的 json 格式。

我需要的json格式是,

[
    {
        "Keyword": "Red", 
        "values": [
            {
                "value": 5, 
                "TC": "Color"
            }            
        ]
    }, 
     {
        "Keyword": "Orange", 
        "values": [
            {
                "value": 5, 
                "TC": "Color"
            }            
        ]
    }, 
     {
        "Keyword": "Violet", 
        "values": [
            {
                "value": 5, 
                "TC": "Color"
            }            
        ]
    }
]

我想要一个 df 来生成这个 json。请帮忙。

但目前我正在获取 df.to_json:

 {"Names":{"0":"Ram","1":"pechi","2":"Sunil","3":" Ravi","4":"sri"},"Values":{"0":"[{'value':2,'TC': 'TC Count'}]","1":"[{'value':2,'TC': 'TC Count'}]","2":"[{'value':1,'TC': 'TC Count'}]","3":"[{'value':1,'TC': 'TC Count'}]","4":"[{'value':1,'TC': 'TC Count'}]"}}  

【问题讨论】:

  • 一个函数或一组函数可以将您的数据帧转换为这种 json,但“生成该 json 的数据帧”,不。我很确定它存在于互联网上,类似于 Google 上的“从数据帧到 json”。
  • 你有一个方法 df.to_json 但我无法得到这个 json。我需要一个 df 来生成具有上述格式的 json
  • df.to_json 的输出是什么?
  • 我的问题中的 json 以上是我想要的_df.to_json,帮我创建我的 deisred_df
  • 你没有回答我的问题,但无论如何:试试[df.to_json]list(df.to_json)

标签: python json pandas dataframe to-json


【解决方案1】:

我认为你需要:


print (df)

  Keyword     TC  value
0     Red  Color      5
1  Orange  Color      5
2  Violet  Color      5
j = (df.set_index('Keyword')
        .apply(lambda x: [x.to_dict()], axis=1)
        .reset_index(name='values')
        .to_json(orient='records'))
print (j)

[{"Keyword":"Red","values":[{"TC":"Color","value":5}]},
 {"Keyword":"Orange","values":[{"TC":"Color","value":5}]},
 {"Keyword":"Violet","values":[{"TC":"Color","value":5}]}]

写信给file

(df.set_index('Keyword')
   .apply(lambda x: [x.to_dict()], axis=1)
   .reset_index(name='values')
   .to_json('myfile.json', orient='records'))

【讨论】:

  • 但是当我将 df 写入新的 json 文件 df.to_json 时,出现以下错误,AttributeError: 'str' object has no attribute 'to_json'
  • 你需要把.to_json(orient='records')改成.to_json(filename.json, orient='records')
  • 我改变了,但仍然是同样的错误,AttributeError Traceback (most recent call last) <ipython-input-203-af1b7d67a607> in <module>() ----> 1 df_graph.to_json("G:\\json_df.json",orient='records') AttributeError: 'str' object has no attribute 'to_json',而且我的 df 类型是,`is str
  • 你的输入数据框和我的回答一样吗?
  • 是的,但在执行df = (df.set_index('Keyword') .apply(lambda x: [x.to_dict()], axis=1) .reset_index(name='values') .to_json(orient='records')) 之后,我的 df 更改为 str,然后我将其写入 json
猜你喜欢
  • 2018-04-11
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 1970-01-01
  • 2014-07-26
  • 1970-01-01
相关资源
最近更新 更多