GVKun编程网logo

Python3 写JSON数据到文件(多行格式化版)(python将json写入文件)

23

在这里,我们将给大家分享关于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写入文件)

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)

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

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数据到文件

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文件

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文件等更多相关知识的信息可以在本站进行查询。

本文标签: