gpt4 book ai didi

python - 将不同格式的json转换为csv

转载 作者:太空宇宙 更新时间:2023-11-04 04:01:14 24 4
gpt4 key购买 nike

我知道这个问题已经被问过很多次了,但我仍然没有解决我的问题,而且我不太擅长编程,所以基本上我有很多 json 文件,但 json 的格式非常不同,所以我可以使用 pandas 库获得我想要的输出,这里是 json 文件的示例。

[
{
"Names": [
"James",
"Bob",
"David"
],
"Salary": [
"2000$",
"5000$",
"6000$"
],
"Id": [
"1",
"2",
"3"
]
},
{
"Names": [
"John",
"Charles",
"Harry"
],
"Salary": [
"1000$",
"2000$",
"3000$"
],
"Id": [
"4",
"5",
"6"
]
}
]

当我使用这个简单的代码将其转换为 pandas 时:

import json
import pandas as pd

df=pd.read_json("test.json")
df.to_csv("results.csv")

https://i.imgur.com/0RMLb89.png

问题是 csv 文件的输出在一个单元格中给我所有 3 个名字,就像 ['James', 'Bob', 'David'] , ['2000$', '5000$', ' 6000$'] ...但我只想要单元格中的一个名字,而不是全部 3 个我对这些东西很陌生我将不胜感激任何帮助

最佳答案

是的,您得到了那个答案,因为字典中给定键的每个值都包含一个列表,而不是单个元素。因此,在使用那种 json 格式时,您应该解决两个级别。

data 是一个列表,其中包含两个具有相同键的字典。任一字典都包含包含列表的键。因此,我们需要遍历第一个列表(以寻址每个字典),然后遍历第二个列表以寻址任何指定键的每个值。输出将是您想要的表格。应该注意的是,此代码将起作用,因为 "Names" 的列表值的长度与 "Salary""Id" 相同>。

import pandas as pd 
import numpy as np
data = [
{
"Names": ["James","Bob","David"],
"Salary": ["2000$","5000$","6000$"],
"Id": ["1","2","3"]},
{
"Names": ["John","Charles","Harry"],
"Salary": ["1000$","2000$","3000$"],
"Id": ["4","5","6"]}
]
to_df = {'Names':[],'Salary':[],'Id':[]}
for i in range(len(data)):
for j in range(len(data[i]['Id'])):
to_df['Names'].append(data[i]['Names'][j])
to_df['Salary'].append(data[i]['Salary'][j])
to_df['Id'].append(data[i]['Id'][j])
df = pd.DataFrame(to_df)
print(df)

输出:

     Names Salary Id
0 James 2000$ 1
1 Bob 5000$ 2
2 David 6000$ 3
3 John 1000$ 4
4 Charles 2000$ 5
5 Harry 3000$ 6

关于python - 将不同格式的json转换为csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58269752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com