如何将 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 转换为 CoffeeScript 并写入文件“.coffee”?