【问题标题】:Convert multiple JSON File to CSV File, each in one column将多个 JSON 文件转换为 CSV 文件,每个文件在一列中
【发布时间】:2021-11-22 09:30:34
【问题描述】:

我有多个 JSON 文件需要转换成一个 CSV 文件

这些是示例 JSON 代码

tryout1.json

{
"Product":{
    "one":"Desktop Computer",
    "two":"Tablet",
    "three":"Printer",
    "four":"Laptop"
},
"Price":{
    "five":700,
    "six":250,
    "seven":100,
    "eight":1200
}}

tryout2.json

{
"Product":{
    "one":"dell xps tower",
    "two":"ipad",
    "three":"hp office jet",
    "four":"macbook"
},
"Price":{
    "five":500,
    "six":200,
    "seven":50,
    "eight":1000
}}

这是我为转换这两个 json 文件而编写的 python 代码

import pandas as pd 
df1 = pd.read_json('/home/mich/Documents/tryout.json')
print(df1)

df2 = pd.read_json('/home/mich/Documents/tryout2.json')
print(df2)

df = pd.concat([df1, df2])

df.to_csv ('/home/mich/Documents/tryout.csv', index = None)

result = pd.read_csv('/home/mich/Documents/tryout.csv')
print(result)

但我没有得到我需要的结果。如何在一个列(产品和价格)中打印第一个 json 文件,在下一列中打印第二个文件? (通过链接查看图片)

我得到的结果

[]

我需要的结果

[]

【问题讨论】:

  • 您希望所有产品都在一行中,所有价格都在一行中,对吗?可能是一个示例输出将有助于您想要做什么。
  • 其实我是想贴结果截图,但是不知道行不行
  • 可以发布结果截图。但是代码应该总是在文本中。
  • 好的,我已经上传图片了

标签: json python-3.x csv


【解决方案1】:

您可以先创建产品和价格的组合列,然后将它们连接起来。

我正在使用axis = 1,因为我希望它们并排组合。(列) axis = 0 将按行合并。

import pandas as pd 
df1 = pd.read_json('/home/mich/Documents/tryout.json')
df1['product_price'] = df1['Product'].fillna(df1['Price'])

df2 = pd.read_json('/home/mich/Documents/tryout2.json')
df2['product_price'] = df2['Product'].fillna(df2['Price'])

pd.concat([df1['product_price'], df2['product_price']],axis=1)

【讨论】:

  • 感谢您的帮助!我还想问一下,你是怎么打印钥匙的?一八。
  • 如果json文件中的对象大于2怎么办?我可以用 fillna() 添加另一个对象吗?
  • 嘿,一到八是索引。它是在您加载 JSON 时自动创建的。如果您写入 csv,您应该能够看到数据以及索引。是的,您可以通过再添加一个填充 na 来填充多于一列。 df[d] = df[a].fillna(df[b]).fillna(df[c])
  • 由于您尚未将答案标记为answered,如果它解决了您的问题,请考虑将帖子设为已回答/已解决,meta.stackexchange.com/questions/5234/…
猜你喜欢
  • 2018-11-14
  • 2022-01-18
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
相关资源
最近更新 更多