Skip to content

Instantly share code, notes, and snippets.

@zkitefly
Created October 3, 2023 07:04
Show Gist options
  • Save zkitefly/9237c10766f3f2874eec6fe8f3b3dde2 to your computer and use it in GitHub Desktop.
Save zkitefly/9237c10766f3f2874eec6fe8f3b3dde2 to your computer and use it in GitHub Desktop.
sharedchat
import json
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
# 用户输入JSON路径
json_path = input("请输入JSON文件路径:")
# 读取JSON文件
with open(json_path, 'r') as json_file:
data = json.load(json_file)
# 转换JSON数据为DataFrame
df = pd.DataFrame(data['account']).T
df.index.name = '对象'
df.reset_index(inplace=True)
# 生成当前时间的字符串形式,用于文件名
current_time = datetime.now().strftime("%Y%m%d%H%M%S")
# 生成表格并保存
table_filename = f"table_{current_time}.csv"
df.to_csv(table_filename, index=False)
# 生成条形图
plt.figure(figsize=(10, 6))
plt.bar(df['对象'], df['count'])
plt.xlabel('对象')
plt.ylabel('count')
plt.title('对象与count关系的条形图')
plt.xticks(rotation=45)
plt.tight_layout()
# 保存条形图
chart_filename = f"chart_{current_time}.png"
plt.savefig(chart_filename)
print(f"表格已保存为 {table_filename}")
print(f"条形图已保存为 {chart_filename}")
import json
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
# 用户输入JSON文件路径
json_file_path = input("请输入要整理的JSON文件路径:")
# 读取JSON文件
with open(json_file_path, 'r') as file:
data = json.load(file)
# 创建一个空的DataFrame
df = pd.DataFrame(columns=["对象", "count"])
# 解析JSON数据并添加到DataFrame中
for key, value in data["account"].items():
df = df.append({"对象": key, "count": value["count"]}, ignore_index=True)
# 生成表格并保存为CSV文件
timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
csv_file_name = f"data_{timestamp}.csv"
df.to_csv(csv_file_name, index=False)
# 生成条形图
plt.bar(df["对象"], df["count"])
plt.xlabel("对象")
plt.ylabel("count")
plt.title("对象与count关系")
plt.xticks(rotation=45)
plt.tight_layout()
# 保存条形图为图片文件
image_file_name = f"bar_chart_{timestamp}.png"
plt.savefig(image_file_name)
# 显示条形图
plt.show()
print(f"表格已保存为: {csv_file_name}")
print(f"条形图已保存为: {image_file_name}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment