Python 将JSON转换为CSV
在python中,我有一个由列表和字典组成的复杂对象层次结构。我想把它全部转换成CSV或其他某种数据库格式。非常感谢您对Python或Javascript的任何回答 我知道一个CSV文件(或表)只能代表我层次结构中的一个对象“级别”,因此解决方案需要创建多个文件 以下是一个例子:Python 将JSON转换为CSV,python,json,csv,Python,Json,Csv,在python中,我有一个由列表和字典组成的复杂对象层次结构。我想把它全部转换成CSV或其他某种数据库格式。非常感谢您对Python或Javascript的任何回答 我知道一个CSV文件(或表)只能代表我层次结构中的一个对象“级别”,因此解决方案需要创建多个文件 以下是一个例子: { "Person" : [{"name":"Greg","age":"35","car":["honda civic","ford focus"]}, {"name":"Ste
{
"Person" : [{"name":"Greg","age":"35","car":["honda civic","ford focus"]},
{"name":"Steve","age":"28", "car":["mazda 323", "toyota camry"]}]
}
将成为
Person.csv:
id,name,age
1,Greg,35
2,Steve,28
car.csv:
id,Person_id,value
1,1,honda civic
2,1,ford focus
3,2,mazda 323
4,2,toyota camry
基本上,这里唯一有趣的事情是分配新的ID,以便可以关联表中的行
干杯,
戴夫
分配新ID,以便可以关联表中的行
例如:
enumerate
。这将为每个人提供方便的PK
第二步。将每个人的便利PK用作您创建的每辆车的FK
唯一令人不快的事情是将PK分配给汽车,因为在特定的数据结构上没有方便的方法来使用枚举
。为此,你必须使用一个好的旧柜台
试试这样的方法
json_dict = {
"Person" : [{"name":"Greg","age":"35","car":["honda civic","ford focus"]},
{"name":"Steve","age":"28", "car":["mazda 323", "toyota camry"]}]
}
for entity in json_dict:
csv_file = open('%s.csv' % entity, 'wb')
headers = a[entity][0].keys()
csv_writer = csv.DictWriter(csv_file, headers)
map(csv_writer.writerow, json_dict[entity])
csv_file.close()
#现在您有了json到csv的格式文件,您可以使用awk
awk -F , '{print NR ", " $2 ", " $3 }' Person.csv > person.csv
…我刚刚在Node.js中发布了一个模块,使这个过程变得简单
var jsonexport = require('jsonexport');
var contacts = [{
name: 'Bob',
lastname: 'Smith',
family: {
name: 'Peter',
type: 'Father'
}
},{
name: 'James',
lastname: 'David',
family:{
name: 'Julie',
type: 'Mother'
}
},{
name: 'Robert',
lastname: 'Miller',
family: null,
location: [1231,3214,4214]
},{
name: 'David',
lastname: 'Martin',
nickname: 'dmartin'
}];
jsonexport(contacts,function(err, csv){
if(err) return console.log(err);
console.log(csv);
});
var jsonexport = require('jsonexport');
var contacts = [{
name: 'Bob',
lastname: 'Smith',
family: {
name: 'Peter',
type: 'Father'
}
},{
name: 'James',
lastname: 'David',
family:{
name: 'Julie',
type: 'Mother'
}
},{
name: 'Robert',
lastname: 'Miller',
family: null,
location: [1231,3214,4214]
},{
name: 'David',
lastname: 'Martin',
nickname: 'dmartin'
}];
jsonexport(contacts,function(err, csv){
if(err) return console.log(err);
console.log(csv);
});