首页 > 解决方案 > 使用 Pandas 将数据从 CSV 格式传输到具有大量字段名的 JSON

问题描述

试图获取一个看起来像这样的文件

数据

并使用以下代码将其转换为 Json。它没有正确打印值。除顶部列之外的值打印为 NULL。

import numpy as np
import pandas as pd
import csv
import json


df = pd.read_csv('1mins data.csv', 'r', ",")
df.head()
fieldnames = df.columns[1:-1]
print(fieldnames[:])

jsonfile = open('1mins data.json', 'w')
fieldnames=fieldnames
reader = csv.DictReader( df, fieldnames)
for row in reader:
    json.dump(row, jsonfile)
    jsonfile.write('\n')

在接受了下面给出的建议后,我更新了脚本。

import numpy as np
import pandas as pd
import csv
import json


df = pd.read_csv('1mins data.csv', 'r', ",")
df.head()

df.columns[1:-1].to_json(path_or_buf='1minsdata.json')

现在我收到了这个错误,

AttributeError: 'Index' object has no attribute 'to_json'

通过这样做修复它

    import numpy as np
import pandas as pd
import csv
import json


df = pd.read_csv('1mins data.csv', 'r', ",")
df.set_index('Time')df.to_json()

df.to_json(path_or_buf='1mins data.json')
df.to_json()

提前致谢,

标签: pythonjsonpandas

解决方案


您可以将 pandas DataFrame 转换为 json 字符串

df.to_json()

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_json.html


推荐阅读