如何将 JSON **text** 写入 Excel 文件?

Posted

技术标签:

【中文标题】如何将 JSON **text** 写入 Excel 文件?【英文标题】:How to write JSON **text** to Excel file? 【发布时间】:2019-04-12 23:05:27 【问题描述】:

在 Python 中有什么方法可以将 JSON text 写入 Excel 文件?

通常我会将 JSON 响应加载到 Pandas 数据帧中并将数据帧写入 Excel:

import pandas
form pandas.io.json import json_normalize
import requests

def df_to_excel(df, filename):
    writer = pandas.ExcelWriter(filename)
    df.to_excel(writer, 'Sheet1')
    writer.save()

response = requests.get(url, params).json()
df = json_normalize(response)
df_to_excel(df, 'Response.xlsx')

但这需要将 JSON 文本转换为 Python 对象,因此将 " 替换为 ',将 false 替换为 False,将 null 替换为 None 等,我不希望这样。

【问题讨论】:

我建议忘记它是 JSON 并将其视为一个简单的字符串,您可以很容易地将字符串写入 Excel 单元格。除非你想做更复杂的事情?您没有明确说明输出应该是什么样子。 我更喜欢将 JSON 键作为 Excel 中的列,将值作为行,这样更容易从另一个模块将文件加载到数据框中,也便于浏览数据。但你的方法将作为最后的手段 - 谢谢。 【参考方案1】:

您可以先将 json 转换为字典,然后按照此处的建议转换为 excel 文件Write dictionary values in an excel file:

import json
import xlsxwriter
import requests

response = requests.get(url, params)
d = json.loads(response.text)

workbook = xlsxwriter.Workbook('data.xlsx')
worksheet = workbook.add_worksheet()

row = 0
col = 0

for key in d.keys():
    row += 1
    worksheet.write(row, col, json.dumps(key))
    for item in d[key]:
        worksheet.write(row, col + 1, json.dumps(item))
        row += 1

workbook.close()

关键是使用json.dumps() 将pythonic 格式转换回json 格式。例如,json.dumps(None) 返回'null'

【讨论】:

谢谢。是否可以将 JSON 作为文本放入 Pandas 数据框中?然后我可以轻松地将数据框写入 Excel。 据我所知,没有图书馆可以帮助您做到这一点。但是,您可以迭代字典 d 的键和值,将 json.dumps 应用于它们,然后使用 pandas.DataFrame.from_dict 方法从字典构造 DataFrame。我现在在路上,如果需要,我稍后会添加代码。还要添加需要转换的json文件示例 感谢 Dmytro,我也是这么想的。

以上是关于如何将 JSON **text** 写入 Excel 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将嵌套字典写入json

使用 Reactjs 时如何将数据写入 JSON 文件

php如何将json数据写入数据库

如何将 JSON 转换为 CoffeeScript 并写入文件“.coffee”?

如何将波兰字符从 JSON 文件写入 JSON 文件? [复制]

如何将一组字段写入 JSON?