【问题标题】:How to write JSON **text** to Excel file?如何将 JSON **text** 写入 Excel 文件?
【发布时间】: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 中的列,将值作为行,这样更容易从另一个模块将文件加载到数据框中,也便于浏览数据。但你的方法将作为最后的手段 - 谢谢。

标签: python json excel pandas dataframe


【解决方案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,我也是这么想的。
猜你喜欢
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-31
相关资源
最近更新 更多