使用Python将Json转换为Excel或CSV

4

我有一个JSON文档,想要将其转换为Excel或CSV格式。我的JSON文件如下:

df = pd.DataFrame(columns=[Store,Address,User,Rating], dtype='unicode')

以下是相关数据:

 Store  |   Address  |  User   | Rating  
|:----------------------------------------:|
 Store X| Adresse X  | User 1  | 3
        |            | User 2  | 5
        |            | User 3  | 2
 Store Y| Adresse Y  | User 1  | 2
        |            | User 2  | 1
        |            | User 3  | 4
        |            | User 4  | 5

我试过使用以下代码将Json文档转换为Excel:

jsonDoc = pd.read_json(df.to_json())
ExcelDoc = jsonDoc.to_excel("C:\Users\output.xlsx")

但是我得到了以下输出:
 Store  |   Address  |  User                    | Rating  
|:-------------------------------------------------------:|
 Store X| Adresse X  | User 1,User2,User3       | 3,5,2
 Store Y| Adresse Y  | User 1,User2,User3,User4 | 2,1,4,5

但我希望我的Excel文件是这样的:
 Store  |   Address  |  User   | Rating  
|:----------------------------------------:|
 Store X| Adresse X  | User 1  | 3
 Store X| Adresse X  | User 2  | 5
 Store X| Adresse X  | User 3  | 2
 Store Y| Adresse Y  | User 1  | 2
 Store Y| Adresse Y  | User 2  | 1
 Store Y| Adresse Y  | User 3  | 4
 Store Y| Adresse Y  | User 4  | 5

有人可以帮我吗?我如何实现这个功能?是否有一个可以处理这个的库?

1个回答

3

我只做了一个月,但主要工作是与学习.json和.xlsx格式的文件打交道,因为这是我大部分需要Python处理的内容。

我最常用且更喜欢的是Tablib。当需要更多Excel相关功能时,我会使用Openpyxl。

http://docs.python-tablib.org/en/master/api/

data = tablib.Dataset(headers=('Store', 'Address', 'User', 'Rating'))

将数据导入tablib有几种方法,我更喜欢以下方法,因为它也适用于数据簿(多个数据集)。

import tablib

import_filename = 'jsondatafile.json'
data.json = open(import_filename, 'r').read()

将其转换为xlsx或csv格式:

print(data.xlsx)
print(data.csv)

将其写入文件:

data_export = data.export('xlsx')
with open('C:/file.xlsx', 'wb') as f:  # open the xlsx file
    f.write(data_export)  # write the dataset to the xlsx file
f.close()

Tablib 能做的事情真的很惊人,可以查看他们的 API 或获取快速入门指南。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接