json - 将 JSON 转换为缺少字段名的 CSV
问题描述
我很难将 JSON 转换为 csv,因为某些记录上的名称没有显示出来。例如:
[{device: 1,
name: 'John',
age: 25,
city: 'Denver'
},
{device: 2,
name: 'Jake',
age: 24,
city: 'New York'
},
{device: 3,
name: 'Phil',
age: 23}]
它变得更加困难,因为它有几千行,有时这个城市是已知的,有时它不是。
我想把这些放在一个csv中,然后把菲尔的城市留空。
解决方案
你可以使用这个:
import json
import csv
js = """[{"device": 1,
"name": "John",
"age": 25,
"city": "Denver"
},
{"device": 2,
"name": "Jake",
"age": 24,
"city": "New York"
},
{"device": 3,
"name": "Phil",
"age": 23}]
"""
js = json.loads(js)
with open( 'result.csv', 'w' ) as csv_file:
writer = csv.writer( csv_file )
columns = list({column for row in js for column in row.keys()})
writer.writerow( columns )
for row in js:
writer.writerow([None if column not in row else row[column] for column in columns])
这甚至适用于不同的列名和更多的列!
推荐阅读
- hyperledger-fabric - 不同区域的 Hyperledger Fabric 网络设置
- visual-studio-code - VS Code 中的“includePath”和“args -I PATH”有什么区别?
- powerquery - 使用正则表达式拆分 Excel 电源查询列
- python - 将变量分配给列表中的元组
- sql - 2个表的SQL
- javascript - 我在复选框中有两个列表,一个我已经检查了一个最初没有检查
- mysql - 警告:mysql_connect():无法通过套接字连接到本地 MySQL 服务器
- go - Golang proto 文件管理和导入
- c - 在 C 中,如何从字符串中取出两个字符,并将它们分配为自己的字符串?
- python - mongodb 连接字符串 uri 在 Kubernetes 中不起作用