按行分割的json转为excel代码
使用chatgpt写了一个python,json文件是按照一行一条给出的,间隔符号不是逗号隔开,而是按行隔开的。json文件示例如下,不是很标准,只是按行分割了一下。
{"_id":{"$oid":"7d"},"accessToken":"accessToken","timeStamp":{"$numberLong":"1597904729012"}}
{"_id":{"$oid":"d5000822c4b1"},"accessToken":"accessToken","timeStamp":{"$numberLong":"1597993125278"}}
{"_id":{"$oid":"41a"},"accessToken":"accessToken","timeStamp":{"$numberLong":"1598337914482"}}
chatgpt 给出了基础代码,经过几次测试和提示修复,按行读取文件并循环为一个大数组,再通过json函数读取json文件。
import json
import pandas as pd
# 读取JSON数据并解析为Python数据结构
with open('data.json', 'r',encoding='utf-8') as f:
rows = []
for line in f:
data = json.loads(line)
rows.append(data)
# 将Python数据结构转换为DataFrame
df = pd.json_normalize(rows)
# 将DataFrame保存为Excel文件
df.to_excel('output.xlsx', index=False)
最后写成的代码还可以用,因为自己不熟练,调试了很长时间去找这个代码和文件中的bug。通过问chatgpt一个特定的问题和给出修改建议,她会给更改的代码更好用一些。但还是要有一定的编程基础,能够根据自己的实际情况去获取合适的代码。
这段代码将一个JSON格式的文件(data.json
)读取并解析为Python数据结构,然后将Python数据结构转换为一个Pandas DataFrame对象,并将DataFrame保存为Excel文件(output.xlsx
)。
您需要确保代码所在的目录下有一个名为data.json
的文件,并且该文件符合JSON格式。如果该文件不符合JSON格式,将会抛出一个json.JSONDecodeError
异常。如果文件编码不是UTF-8,请在open()
函数中添加encoding
参数来指定编码方式。
如果您没有安装pandas
库或openpyxl
库,需要先安装这些库:
pip install pandas openpyxl
该代码将使用pandas.json_normalize()
函数将嵌套的JSON数据规范化为扁平的DataFrame。如果您的JSON数据不是嵌套的结构,您可以直接使用pd.read_json()
函数读取JSON数据。
请注意,由于JSON数据可能包含嵌套的结构和变长的列表,因此不一定能够将所有的JSON数据转换为规范化的DataFrame。在这种情况下,您可能需要手动处理数据或使用其他Python库来处理JSON数据。
初始代码适用于标准的json文件转为excel的代码
最初给出的程序试用于一个标准的json数组记录一下。正规的json如下
[{"_id":{"$oid":"7d"},"accessToken":"accessToken","timeStamp":{"$numberLong":"1597904729012"}},
{"_id":{"$oid":"d5000822c4b1"},"accessToken":"accessToken","timeStamp":{"$numberLong":"1597993125278"}},
{"_id":{"$oid":"41a"},"accessToken":"accessToken","timeStamp":{"$numberLong":"1598337914482"}}]
将多行的JSON数据导出为多行的Excel数据可以通过以下步骤实现:
- 使用JSON解析器将JSON数据解析为Python数据结构(如列表或字典)。
- 使用Python的pandas库将Python数据结构转换为DataFrame。
- 将DataFrame保存为Excel文件。
下面是一个示例代码,演示了如何使用Python和pandas将多行JSON数据导出为多行Excel数据:
import json
import pandas as pd
# 读取JSON数据并解析为Python数据结构
with open('data.json', 'r',encoding='utf-8') as f:
data = json.load(f)
# 将Python数据结构转换为DataFrame
df = pd.DataFrame(data)
# 将DataFrame保存为Excel文件
df.to_excel('output.xlsx', index=False)
在上面的代码中,data.json
是包含多行JSON数据的文件,output.xlsx
是将要保存的Excel文件名。导出的Excel文件中将包含与输入JSON数据相同的多行数据。
如果不需要声明json字符编码可以直接用这个代码。
import json
import pandas as pd
# 读取JSON数据并解析为Python数据结构
with open('data.json', 'r') as f:
data = json.load(f)
# 将Python数据结构转换为DataFrame
df = pd.DataFrame(data)
# 将DataFrame保存为Excel文件
df.to_excel('output.xlsx', index=False)
后续可能还需要处理里面多层的json嵌套这些,这个需要根据自己的业务逻辑来处理,我们用于数据迁移,为了人工筛选方便,转成excel就可以用了。