python - 确定文件是“更可能”是 json 还是 csv
问题描述
我有一些带有通用扩展名的文件,例如“txt”或根本没有扩展名。我试图以非常快速的方式确定文件是 json 还是 csv。我想过使用该magic
模块,但它不适用于我正在尝试做的事情。例如:
>>> import magic
>>> magic.from_file('my_json_file.txt')
'ASCII text, with very long lines, with no line terminators'
有没有更好的方法来确定某个东西是 json 还是 csv?我无法加载整个文件,我想以非常快速的方式确定它。这里有什么好的解决方案?
解决方案
您可以检查文件是否以其中之一开头{
或[
确定它是否为 JSON,并且您可以加载前两行csv.reader
并查看两行是否具有相同的列数以确定它是否为 CSV。
import csv
with open('file') as f:
if f.read(1) in '{[':
print('likely JSON')
else:
f.seek(0)
reader = csv.reader(f)
try:
if len(next(reader)) == len(next(reader)) > 1:
print('likely CSV')
except StopIteration:
pass
推荐阅读
- python - 使python停止直到鼠标单击
- python - 在 PyCharm 上使用 Python 版本 3.8.5 和 TensorFlow 和 Keras 库构建情商应用程序时遇到问题
- amazon-web-services - 将 AWS ECS 服务与 CDK 连接
- tensorflow - 如何在具有可变索引的 keras 中对张量进行切片?
- r - 在 R 中重复的固定样本的直方图 - 出了点问题
- javascript - UnhandledPromiseRejectionWarning:错误:请求失败,状态码为 400
- python - 如何将 Pandas DataFrame 转换为向量表
- javascript - 将浮点数转换为大整数的最简单方法?
- python - 列表中的 Django 模板中的多列表
- dl4j - 当我使用随机播放方法时,nd4j 数据集变为零