超详细JSON教程!那些Python中JSON的使用方式都在这里

article/2025/8/17 15:49:40

在这里插入图片描述

  • 博客主页:长风清留扬-CSDN博客
  • 系列专栏:Python基础专栏
  • 每天更新大数据相关方面的技术,分享自己的实战工作经验和学习总结,尽量帮助大家解决更多问题和学习更多新知识,欢迎评论区分享自己的看法
  • 感谢大家点赞👍收藏⭐评论

在这里插入图片描述

在这里插入图片描述

什么是JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集,但JSON是独立于语言的,很多编程语言都支持JSON格式数据的生成和解析。

JSON的构造

对象(Object)

定义:

  • 对象在JSON中由花括号“{}”括起来。
  • 对象内部由一系列键值对(key-value pair)组成,键值对之间用逗号分隔。

键(Key):

  • 键是一个字符串,必须用双引号括起来。
  • 键名不区分大小写,但通常按照惯例使用小写字母和下划线。

值(Value):

  • 值可以是字符串、数字、布尔值(true/false)、数组、对象或null。
  • 如果值是字符串,则必须用双引号括起来。

结构示例

{  "name": "Alice",  "age": 30,  "city": "New York",  "isStudent": false,  "skills": ["Python", "Java", "C++"]  
}

数组(Array)

定义:

  • 数组在JSON中由中括号“[]”括起来。
  • 数组内部由一系列值组成,这些值之间用逗号分隔。

值:

  • 数组中的值可以是任何类型,包括字符串、数字、布尔值、数组、对象或null。

结构示例

[  "apple",  "banana",  "cherry",  {  "name": "Alice",  "age": 30  },  [1, 2, 3, 4, 5]  
]

嵌套结构

定义:

  • JSON允许对象和数组之间互相嵌套,从而构造出复杂的数据结构。

结构示例

{  "name": "Bob",  "children": [  {  "name": "Alice",  "age": 10  },  {  "name": "Charlie",  "age": 7  }  ],  "address": {  "street": "123 Main St",  "city": "Anytown",  "state": "CA"  }  
}

注意事项

数据类型:

  • JSON中的数据类型比JavaScript中更为严格,只有字符串、数字、布尔值、数组、对象和null。
  • 字符串必须用双引号括起来,不能使用单引号。

键名唯一性:

  • 在同一个对象中,键名是唯一的,不能重复。

排序:

  • JSON对象中的键值对是无序的,即键名不保证按照插入顺序排列。如果需要有序性,可以在生成JSON字符串时通过指定参数进行排序。

空值:

  • JSON中可以使用null来表示空值或不存在的值。

Json在Python中的对应关系

PythonJSON
dictobject
list, tuplearray
str, unicodestring
int, long, floatnumber
Truetrue
Falsefalse
Nonenull

Python中JSON的常用方法

方法名称描述
json.loads()将JSON格式的字符串解析成Python对象(如字典或列表)
json.dumps()将Python对象(如字典或列表)转换成JSON格式的字符串
json.load()从文件中读取JSON格式的数据,并解析成Python对象
json.dump()将Python对象转换成JSON格式的数据,并写入文件
json.JSONDecoder()创建一个JSON解码器对象,用于解析JSON字符串(通常直接使用json.loads()更常见)
json.JSONEncoder()创建一个JSON编码器对象,用于将Python对象转换成JSON字符串(通常直接使用json.dumps()更常见)
json.JSONDecodeError异常类,用于处理JSON解码时发生的错误

json.loads()

json.loads() 是Python标准库 json 模块中的一个函数,用于将JSON格式的字符串解析(解码)成Python对象。这个过程是反序列化的一部分,即将数据从一种格式(在这个情况下是JSON字符串)转换成另一种格式(在这个情况下是Python的数据结构,如字典或列表)。

参数

  • s (str): 要解码的JSON字符串。
  • *, **kwargs: 其他可选参数,用于指定解码行为,如 object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, json_loads 等。这些参数允许用户自定义解码过程,例如将JSON对象转换成特定的Python对象类型。

返回值

Python对象:通常是字典(对应于JSON对象)或列表(对应于JSON数组)。如果JSON字符串表示的是其他类型(如字符串、数字、布尔值、null),则返回相应的Python类型。

示例

import json  # 一个简单的JSON字符串  
json_str = '{"name": "Alice", "age": 30, "is_student": false}'  # 使用json.loads()将JSON字符串解析成Python对象  
python_obj = json.loads(json_str)  # 打印解析后的Python对象  
print(python_obj)  # 输出: {'name': 'Alice', 'age': 30, 'is_student': False}  # 访问解析后的对象属性  
print(python_obj['name'])  # 输出: Alice  
print(python_obj['age'])   # 输出: 30  
print(python_obj['is_student'])  # 输出: False

注意事项

  • JSON字符串必须使用双引号(")来包围键和字符串值。如果使用单引号('),则会导致解码错误。
  • JSON中的布尔值 true 和 false 会被转换成Python中的 True 和 False。
  • JSON中的 null 会被转换成Python中的 None。
  • 如果JSON字符串格式不正确(例如缺少引号、括号不匹配等),json.loads() 会抛出一个 json.JSONDecodeError 异常。

json.dumps()

json.dumps() 是Python标准库 json 模块中的一个函数,用于将Python对象编码(序列化)成JSON格式的字符串。这个过程是序列化的一部分,即将数据从一种格式(在这个情况下是Python的数据结构,如字典或列表)转换成另一种格式(在这个情况下是JSON字符串)。

参数

  • obj (any): 要编码的Python对象。它通常是字典(对应于JSON对象)或列表(对应于JSON数组),但也可以是其他类型,如字符串、数字、布尔值、None等。
  • skipkeys (bool, optional): 默认为False。如果字典的键不是基本类型(即str, int, float, bool, None),则设置为True可以跳过这些键;否则将引发TypeError。
  • ensure_ascii (bool, optional): 默认为True。如果设置为False,则尝试将非ASCII字符(如中文)输出为\uXXXX形式的Unicode转义字符之外的字符。请注意,这可能会产生不可读的输出在非ASCII平台的print函数中,因为print函数可能会使用系统默认的编码来解码字节字符串。在Python 3.x中,字符串是Unicode的,所以这个选项主要影响字节字符串的输出。
  • check_circular (bool, optional): 默认为True。如果设置为False,则跳过对容器类型的循环引用的检查(这可能会引发OverflowError)。
  • allow_nan (bool, optional): 默认为True。如果设置为False,则序列化过程中会将浮点数中的NaN、Infinity和-Infinity转换为null。
  • sort_keys (bool, optional): 默认为False。如果设置为True,则字典的键会按照键的Unicode码点排序。
  • indent (int or str, optional): 如果指定为整数,则使用指定的缩进级别来美化输出的JSON字符串。如果指定为字符串(如\t),则使用该字符串作为缩进字符。
  • separators (tuple, optional): 一个(item_separator, key_separator)元组,用于指定分隔符。默认为(', ', ‘: ‘)。如果指定为(’,’, ‘:’),则输出的字符串会更紧凑。
  • default (function, optional): 一个函数,用于将不可序列化的对象转换为一个可序列化的表示。默认情况下,不可序列化的对象会引发TypeError。
    *, **kwargs: 其他可选参数,用于进一步定制序列化行为。

返回值

str: 编码后的JSON格式的字符串。

示例

import json  # 一个简单的Python对象(字典)  
python_obj = {'name': 'Alice', 'age': 30, 'is_student': False}  # 使用json.dumps()将Python对象编码成JSON字符串  
json_str = json.dumps(python_obj)  # 打印编码后的JSON字符串  
print(json_str)  # 输出: '{"name": "Alice", "age": 30, "is_student": false}'  # 使用indent参数来美化输出  
pretty_json_str = json.dumps(python_obj, indent=4)  
print(pretty_json_str)  
# 输出:  
# {  
#     "name": "Alice",  
#     "age": 30,  
#     "is_student": false  
# }

注意事项

  • 编码后的JSON字符串使用双引号(")来包围键和字符串值。
  • Python中的布尔值 True 和 False 会被转换成JSON中的 true 和 false。
  • Python中的 None 会被转换成JSON中的 null。
  • 如果Python对象包含无法直接转换成JSON的类型(如自定义对象),则可以使用default参数来提供一个自定义的序列化函数。
  • json.dumps() 不会直接写入文件;要将JSON字符串写入文件,请使用json.dump()方法。

json.load()

json.load() 是Python标准库 json 模块中的一个函数,用于从文件中读取JSON格式的数据,并将其解析(解码)成Python对象。这个过程是反序列化的一部分,即将数据从一种格式(在这个情况下是JSON文件)转换成另一种格式(在这个情况下是Python的数据结构,如字典或列表)。

参数

  • fp (file-like object): 一个文件对象,它应该是一个支持.read()方法的对象,并且包含JSON格式的数据。这通常是一个打开的文件,但也可以是任何实现了文件接口的对象。
  • *, **kwargs: 其他可选参数,用于指定解码行为,如 object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, cls 等。这些参数允许用户自定义解码过程,例如将JSON对象转换成特定的Python对象类型。

返回值

Python对象:通常是字典(对应于JSON对象)或列表(对应于JSON数组)。如果JSON文件表示的是其他类型(如字符串、数字、布尔值、null),则返回相应的Python类型。

示例

import json  # 假设有一个名为'data.json'的文件,内容如下:  
# {  
#     "name": "Alice",  
#     "age": 30,  
#     "is_student": false  
# }  # 打开JSON文件并读取数据  
with open('data.json', 'r', encoding='utf-8') as f:  python_obj = json.load(f)  # 打印解析后的Python对象  
print(python_obj)  # 输出: {'name': 'Alice', 'age': 30, 'is_student': False}  # 访问解析后的对象属性  
print(python_obj['name'])  # 输出: Alice

注意事项

  • 文件应该以读取模式(‘r’)打开,并且通常应该指定文件的编码(如’utf-8’),以确保正确读取文件中的字符。
  • JSON文件中的字符串必须使用双引号(")来包围键和字符串值。
  • 如果JSON文件格式不正确(例如缺少引号、括号不匹配等),json.load() 会抛出一个 json.JSONDecodeError 异常。
  • json.load() 直接从文件中读取并解析JSON数据,而不需要先将文件内容读入一个字符串变量。

json.dump()

json.dump() 是Python标准库 json 模块中的一个函数,用于将Python对象编码(序列化)成JSON格式,并将结果写入到一个文件中。这个过程是序列化的一部分,即将数据从一种格式(在这个情况下是Python的数据结构,如字典或列表)转换成另一种格式(在这个情况下是JSON文件)。

参数

  • obj (any): 要编码的Python对象。它通常是字典(对应于JSON对象)或列表(对应于JSON数组),但也可以是其他类型,如字符串、数字、布尔值、None等。
  • fp (file-like object): 一个文件对象,它应该是一个支持.write()方法的对象,用于写入JSON格式的数据。这通常是一个打开的文件,但也可以是任何实现了文件接口的对象。
  • skipkeys (bool, optional): 默认为False。如果字典的键不是基本类型(即str, int, float, bool, None),则设置为True可以跳过这些键;否则将引发TypeError。
  • ensure_ascii (bool, optional): 默认为True。如果设置为False,则尝试将非ASCII字符(如中文)输出为\uXXXX形式的Unicode转义字符之外的字符。请注意,在写入文件时,这通常不是问题,因为文件可以保存任何字节。但是,如果文件被当作文本文件处理(例如,在某些编辑器或查看器中打开),则可能需要确保文件的编码与ensure_ascii=False时写入的字符相匹配。
  • check_circular (bool, optional): 默认为True。如果设置为False,则跳过对容器类型的循环引用的检查(这可能会引发OverflowError)。
  • allow_nan (bool, optional): 默认为True。如果设置为False,则序列化过程中会将浮点数中的NaN、Infinity和-Infinity转换为null。
  • sort_keys (bool, optional): 默认为False。如果设置为True,则字典的键会按照键的Unicode码点排序后写入文件。
  • indent (int or str, optional): 如果指定为整数,则使用指定的缩进级别来美化输出的JSON。如果指定为字符串(如\t),则使用该字符串作为缩进字符。
  • separators (tuple, optional): 一个(item_separator, key_separator)元组,用于指定分隔符。默认为(', ', ‘: ‘)。如果指定为(’,’, ‘:’),则输出的字符串会更紧凑。
  • default (function, optional): 一个函数,用于将不可序列化的对象转换为一个可序列化的表示。默认情况下,不可序列化的对象会引发TypeError。
    *, **kwargs: 其他可选参数,用于进一步定制序列化行为。

返回值

None:json.dump() 不返回任何值,它将编码后的JSON数据直接写入到提供的文件对象中。

示例

import json  # 一个简单的Python对象(字典)  
python_obj = {'name': 'Alice', 'age': 30, 'is_student': False}  # 打开一个文件以写入JSON数据  
with open('output.json', 'w', encoding='utf-8') as f:  json.dump(python_obj, f)  # 现在'output.json'文件包含了编码后的JSON数据

注意事项

  • 文件应该以写入模式(‘w’、‘a’等)打开,并且通常应该指定文件的编码(如’utf-8’),以确保正确写入文件中的字符。
  • 如果ensure_ascii设置为False,并且文件中包含非ASCII字符,请确保文件的编码与这些字符相匹配,否则在某些环境中可能会出现乱码。
  • json.dump() 直接将Python对象编码成JSON格式并写入文件,而不需要先将数据转换成字符串。
  • 如果提供的文件对象不支持.write()方法,json.dump() 会抛出一个异常。

推荐阅读

Python基础

Python全网最全基础课程笔记(一)——基础入门

Python全网最全基础课程笔记(二)——变量

Python全网最全基础课程笔记(三)——所有运算符+运算符优先级

Python全网最全基础课程笔记(四)——基本数据类型

Python全网最全基础课程笔记(五)——选择结构+Python新特性Match

Python全网最全基础课程笔记(六)——循环结构

Python全网最全基础课程笔记(七)——列表,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

Python全网最全基础课程笔记(八)——字典,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

Python全网最全基础课程笔记(九)——集合,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

Python全网最全基础课程笔记(十)——元组,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

Python全网最全基础课程笔记(十一)——字符串所有操作,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

Python全网最全基础课程笔记(十二)——函数,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

Python全网最全基础课程笔记(十三)——作用域,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

Python全网最全基础课程笔记(十四)——异常处理机制,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

有史以来最全的异常类讲解没有之一!爆肝3万字,终于把Python的异常类写完了!最全Python异常类合集和案例演示,第一部分

有史以来最全的异常类讲解没有之一!第二部分爆肝2万字,终于把Python的异常类写完了!最全Python异常类合集和案例演示,第二部分

有史以来最全的异常类讲解没有之一!第三部分爆肝4万字,终于把Python的异常类写完了!最全Python异常类合集和案例演示,第三部分

Python疑难杂症百科-BUG编年史

浮点数精度不再是困扰:Python高手的精准编程秘籍!解决Python浮点数精度问题!

还在为Python变量中遇到的BUG而发愁吗?,变量相关的问题和解决办法看这篇文章就够了!

还在为Python“运算符”中遇到的BUG而发愁吗?,变量相关的问题和解决办法看这篇文章就够了!

Python刷题面试宝典

Python列表实战题目练习,巩固知识、检查技术

Python “元组” ——Python面试100道实战题目练习,巩固知识、检查技术、成功就业

Python “字符串操作” ——Python面试100道实战题目练习,巩固知识、检查技术、成功就业

Python字典实战题目练习,巩固知识、检查技术

Python “集合” 100道实战题目练习,巩固知识、检查技术

Python “函数” ——Python面试100道实战题目练习,巩固知识、检查技术、成功就业

Python “异常处理机制” ——Python面试100道实战题目练习,巩固知识、检查技术、成功就业

Flink入门到就业

2024年最新Flink教程,从基础到就业,大家一起学习–基础篇

2024年最新Flink教程,从基础到就业,大家一起学习–入门篇

2024年最新Flink教程,从基础到就业,大家一起学习–Flink集群部署

2024年最新Flink教程,从基础到就业,大家一起学习–flink部署和集群部署(从本地测试到公司生产环境如何部署项目源码)

2024年最新Flink教程,从基础到就业,大家一起学习–Flink运行架构底层源码详解+实战

2024年最新Flink教程,从基础到就业,大家一起学习–Flink DataStream API-第一篇+源码讲解

在这里插入图片描述


http://www.hkcw.cn/article/mjaZAEyKdx.shtml

相关文章

python所有版本下载安装教程,python3.8下载安装教程,python旧版本下载安装教程,python环境变量配置

python3.8虽然已经很旧了,但却是使用人数最多,最稳定的版本,先说3.8,再说其他所有版本 1、网页搜索python380或python3.8 或搜索https://www.python.org/downloads/release/python-380/ 或使用下面超链接:Python Relea…

Python Selenium 完全指南:从入门到精通

Python Selenium 完全指南:从入门到精通 📚 目录 环境准备与基础入门元素定位与交互操作等待机制与异常处理面向对象封装与框架设计进阶技巧与最佳实践性能优化与调试技巧实战案例分析 环境准备与基础入门 1. 安装 Selenium 与浏览器驱动 安装 Selen…

人工智能与机器学习:Python从零实现性回归模型

🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创AI未来! 🚀 前言 在 AI 的热潮中,很容易忽视那些让它得以实现的基础数学和技…

【Pytorch安装】深度学习环境配置详细教程!(Pytorch GPU和CPU版本 Python,Anaconda3 和 Pycharm 的安装)

目录 一、前言 1、简介 2、准备 二、Python安装 1、下载安装包 (1)搜索官网 (2)下载最新版本 (3)选择其他版本下载 2、安装 (1)双击进入安装 (2)查…

【Python实战】——Python+Opencv是实现车牌自动识别

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

PyCharm 创建第一个 Python 项目

PyCharm 启动的时候其实已经提供了很多快捷方式: 我们点击"新建脚本"这个按钮,PyCharm 就会帮我们创建一个 script.py 文件,并自动初始化代码和环境: 我们可以尝试修改脚本文件,并运行查看输出结果&#xff…

五子棋Python源代码

图形化界面 库:numpy,pygame 效果: 源代码: #调用pygame库 import pygame import sys #调用常用关键字常量 from pygame.locals import QUIT,KEYDOWN import numpy as np #初始化pygame pygame.init() #获取对显示系统的访问&a…

Ubantu 20.04 安装 Mujoco210、mujoco-py、gym及报错解决

1. 安装Mujoco 1.1 官网下载Mujoco210安装包 Mujoco2.1.0下载链接 选第一个 1.2 创建文件夹并解压安装包 mkdir ~/.mujoco创建好后,点击显示隐藏文件可以找到 找到刚刚下载的压缩包所在位置(一般在下载目录下),右键选择 在终…

CUDA重大更新:原生Python可直接编写高性能GPU程序

NVIDIA 在2025年GTC大会上宣布了一项具有里程碑意义的技术更新:CUDA并行计算平台正式支持原生Python编程。这一突破性进展将消除Python开发者进入GPU加速计算领域的主要技术壁垒,无需再依赖C/C语言作为中介。 此次更新意味着数千万Python开发者现在可以…

Python的pandas库基础知识(超详细教学)

目录 一、配置环境 二、序列和数据表 2.1 初始化 2.2 获取数值 2.3 获取索引 2.4 索引取内容 2.5 索引改变取值 2.6 字典生成序列 2.7 计算取值出现次数 2.8 数据表 2.9 数据表添加新变量 2.10 获取列名 2.11 根据列名获取数据 2.12 输出固定行 2.13 输出多行…

男子把矿泉水带到高原一觉醒来大变样 当地的水就没事

男子把矿泉水带到高原,一觉醒来大变样,当地的水就没事!矿泉水被带到高原后出现的物理变化主要与高原环境的气压和温度条件有关,具体表现如下:1.瓶体膨胀现象高原地区平均气压仅为平地的60%-70%,密封瓶装水在运输过程中因外部气压骤降,内部气体体积膨胀导致瓶身变形,可能…

年轻人,花1000多亿干这个!押注谷子经济

年轻人,花1000多亿干这个!押注谷子经济。“六一”前夕,义乌国际商贸城一区内,印着动漫主人公的巨幅海报已经换上,最新的盲盒、徽章以及各种周边好物被摆在了最显眼的位置。2000多家玩具批发商户汇聚于此,谷子浓度越来越高。“谷子”由英文“Goods”音译而来,这个词囊括了…

“端午躲好午,不愁没好运”怎么躲午? 五种方法保平安

“端午躲好午,不愁没好运”怎么躲午? 五种方法保平安!艾旗迎百福,蒲剑斩千邪。今年的端午节比往年早一些,大街小巷已经有很多售卖艾蒿的商贩。端午节是中国传统的四大佳节之一,有着悠久的历史和丰富的文化习俗。进入农历五月后,阳光变得炙热,雨水增多,这个时节是各种毒…

基于python合成100X100的透明背景图片和图标

一、实现思路 1. 加载图像 使用 Image.open() 加载图标图像。 Image.new() 创建一个新的透明背景图像。 2. 调整大小 使用 resize() 方法调整图标图像的大小,确保它不会超过背景图像的一半大小。这里使用 Image.Resampling.LANCZOS 作为过滤器&…

新能源电池壳冲压车间看板实施

车间漫游 这个厂区就一个车间,面积还好,但是被机器和仓库区的产品塞得满满当当。我观察车间布局,为了出货方便,仓库区就在大门旁,叉车到门口货车的转运很快速方便。到车间后,对接人还没来,我们…

秋招Day10 - JVM - 内存管理

JVM组织架构主要有三个部分:类加载器、运行时数据区和字节码执行引擎 类加载器:负责从文件系统、网络或其他来源加载class文件,将class文件中的二进制数据加载到内存中运行时数据区:运行时的数据存放的区域,分为方法区…

茅台经销商被罚后起诉市监局续:法院重审一审撤销处罚决定

“贵州茅台经销商被罚后起诉市监局”一案近日有了最新进展。澎湃新闻从当事人及其代理律师处了解到,贵州省都匀市人民法院日前对该案作出重审一审判决,认定案涉处罚决定适用法律错误、程序违法,决定撤销黔南州市场监督管理局此前作出的行政处罚决定。澎湃新闻此前报道,郭亮…

花生壳里塞冰淇淋卖28一个 真果壳制成引争议

花生壳里塞冰淇淋卖28一个 真果壳制成引争议!近日,一位女子发布视频称,在苏州一家餐厅遇到了价格高昂的冰淇淋。她提到,一份装在花生壳里的冰淇淋售价28元,分量却少得惊人。尽管服务员会帮忙切开,仪式感十足,但她认为并不值这个价格。记者随后走访了位于苏州市姑苏区美罗…

严重或可能导致死亡!不要空腹吃荔枝 了解“荔枝病”真相

最近,话题#荔枝病突然成为热门话题。广东一名女子因过量食用荔枝后,次日出现头晕不适、持续性鼻出血等症状,最终被诊断为“荔枝病”。科普博主表示,此病严重时会引发休克甚至死亡。荔枝病也称为低血糖急性脑炎综合征,发病人群以4至11岁的儿童较为多见。一旦发生,会导致人…

工信部曝光:“腾讯支付”有诈!冒名诈骗需警惕

工信部反诈专班近日发布消息称,有用户举报发现了一款名为“腾讯支付”的理财APP。经与腾讯官方核实,这款APP并非大众熟知的“微信支付”。实际上,微信支付仅支持在微信应用内使用,并没有独立的APP。所谓的“腾讯支付”APP冒充腾讯集团名义,恶意使用腾讯名称,虚构腾讯股权…