在这里,我们将给大家分享关于Python3写JSON数据到文件的知识,让您更了解多行格式化版的本质,同时也会涉及到如何更有效地100天精通Python(数据分析篇)——第59天:Pandas读写jso
在这里,我们将给大家分享关于Python3 写JSON数据到文件的知识,让您更了解多行格式化版的本质,同时也会涉及到如何更有效地100天精通Python(数据分析篇)——第59天:Pandas读写json文件(read_json、to_json)、7-Python格式化文件存储-JSON、Python - Flask 保存JSON数据到文件、Python json数据写入csv json excel文件的内容。
本文目录一览:- Python3 写JSON数据到文件(多行格式化版)(python将json写入文件)
- 100天精通Python(数据分析篇)——第59天:Pandas读写json文件(read_json、to_json)
- 7-Python格式化文件存储-JSON
- Python - Flask 保存JSON数据到文件
- Python json数据写入csv json excel文件
Python3 写JSON数据到文件(多行格式化版)(python将json写入文件)
import json
dict_var = {
'name': 'Cactus','age': 18,'skills': ['Python','Java','Go','NodeJS'],'has_blog': True,'gf': None
}
with open("demo2.json","w",encoding='utf-8') as f:
# json.dump(dict_var,f) # 写为一行
json.dump(dict_var,f,indent=4,sort_keys=True,ensure_ascii=False) # 写为多行
100天精通Python(数据分析篇)——第59天:Pandas读写json文件(read_json、to_json)
文章目录
- 每篇前言
- 一、read_json()
-
- 1. path_or_buf
- 2. orient
- 3. typ
- 4. dtype
- 5. convert_axes
- 6. convert_dates
- 7. keep_default_dates
- 8. numpy
- 9. precise_float
- 10. date_unit
- 11. lines
- 12. encoding
- 二、to_json()
-
- 1. path_or_buf
7-Python格式化文件存储-JSON
JSON
-
在线工具
- https://www.sojson.com/
- http://www.w3school.com.cn/json/
- http://www.runoob.com/json/json-tutorial.html
-
JSON(JavaScriptObjectNotation)
-
轻量级的数据交换格式,基于ECMAScript
-
json格式是一个键值对形式的数据集
-
key: 字符串
-
value:字符串,数字,列表,json
-
json使用大括号包裹
-
键值对直接用都好隔开
student={ "name": "wangdapeng", "age": 18, "mobile":"13260446055" }
-
-
json和python格式的对应
- 字符串:字符串
- 数字:数字
- 队列:list
- 对象:dict
- 布尔值:布尔值
-
python for json
-
json包
-
json和python对象的转换
- json.dumps():对数据编码,把python格式表示成json格式
- json.loads(): 对数据解码,把json格式转换成python格式
-
python读取json文件
- json.dump(): 把内容写入文件
- json.load(): 把json文件内容读入python
-
案例v07
-
案例v08读取文件
-
案例v07
import json
# 此时student是一个dict格式内容,不是json
student={
"name": "luidana",
"age": 18,
"mobile":"15578875040"
}
print(type(student))
stu_json = json.dumps(student)
print(type(stu_json))
print("JSON对象:{0}".format(stu_json))
stu_dict = json.loads(stu_json)
print(type(stu_dict))
print(stu_dict)
案例v8
import json
data = {"name":"hahah", "age":12}
with open("t.json", ''w'') as f:
json.dump(data, f)
with open("t.json", ''r'') as f:
d = json.load( f)
print(d)
Python - Flask 保存JSON数据到文件
用户数据格式:
{
"user":[
{"name":"allen","id":"001"},
{"name":"bond","id":"002"},
{"name":"cindy","id":"003"},
{"name":"donnie","id":"004"},
}
Flask处理:
import ast
import json
from flask import Flask, request, jsonify
...
@app.route(''/user'', methods=[''POST''])
def create_user():
record = json.dumps(request.form, default=lambda o:o.__dict__) ## 将form数据转化为dict(JSON格式)
with open("data/user.txt", ''r'') as f:
data = f.read()
if not data:
records = jsonify(user=[])
records = records["user"].append(ast.literal_eval(record))
else:
records = json.loads(data)
records["user"].append(ast.literal_eval(record)) ##将字符串转为dict
with open("data/user.txt", ''w'') as f:
f.write(json.dumps(records, indent=2))
return jsonify(records)
...
要点:
将form数据转为字典
将字符串转为字典,再添加到user的值列表。否则,元素整体会被视作字符串,被单引号包裹。jsonify应用后,出现转义字符。
Python json数据写入csv json excel文件
一.写入
写入csv和json, 可以使用csv这个包写, 我这里没有使用, 并且把写csv和json的写到一起了
具体的代码就不解释了
def write_file(file_name, items, file_type="json", mode="a+", csv_separ=",", is_close=True, is_count=True):
"""
file_name: file path or file name, example: ./data/test.csv or test or test.csv
items: data list, example: [{},{}]
file_type: csv or json, default json
mode: write mode, default a+
csv_separ: if file_type is csv, choose csv separ, default ,
is_close: write items, close file, default close
is_count: count write file num
"""
if not file_name.endswith(file_type):
file_name = "%s.%s" % (file_name, file_type)
if not isinstance(items, (tuple, list)):
items = [items]
is_exists = True
if not os.path.exists(file_name):
is_exists = False
file = open(file_name, mode)
write_count = 0
for item in items:
if (file_type == "csv") and (not is_exists):
file.write(csv_separ.join(item.keys()) + "\n")
is_exists = True
if file_type == "csv":
try:
value_list = [re.sub(r"[\r\t\n\s]+", "", str(v)) for v in item.values()]
file.write(csv_separ.join(value_list) + "\n")
except Exception as e:
print(item)
elif file_type == "json":
file.write(json.dumps(item, ensure_ascii=False) + "\n")
write_count += 1
if is_close:
file.close()
if is_count:
data_dir, data_file_name = os.path.split(file_pname)
with open("%s/%s.csv" % (data_dir, "count"), "a+") as f:
f.write("%s,%s\n" % (data_file_name, write_count))
return write_count
二. 使用pandas写入excel文件
1. 安装pandas 和 openpyxl 模块
pip3 install pandas openpyxl
2. 写入excel文件
def write_xlsx(file_name, data, sheet_name="reviews", is_count=True):
"""
file_name: file path, example: /data/test.xlsx
data: data list, example: [{}, {}]
sheet_name: sheet name, dafault: reviews,
is_count: count write file num
"""
excelWriter = pd.ExcelWriter(file_name)
datas = pd.DataFrame(data=list(data))
datas.to_excel(excelWriter, sheet_name=sheet_name, engine="openpyxl", index=False)
excelWriter.save()
excelWriter.close()
if is_count:
data_dir, data_file_name = os.path.split(file_pname)
with open("%s/%s.csv" % (data_dir, "count"), "a+") as f:
f.write("%s,%s\n" % (data_file_name, write_count))
return len(data)
3. 报错
一般的情况下, 只需要将模块更新到最新版即可
如有问题欢迎交流
今天关于Python3 写JSON数据到文件和多行格式化版的介绍到此结束,谢谢您的阅读,有关100天精通Python(数据分析篇)——第59天:Pandas读写json文件(read_json、to_json)、7-Python格式化文件存储-JSON、Python - Flask 保存JSON数据到文件、Python json数据写入csv json excel文件等更多相关知识的信息可以在本站进行查询。
本文标签: