Python学习---JSON学习180130

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON是用字符串来表示Javascript对象;

Json字符串就是js对象的一种表现形式(字符串的形式)

不管是python还是其它语言,它们都有自己的数据类型,但如果要处理成json字符串就需要把数据换转成js对应的数据对象(比如python的元组就被处理成了数组,字典就被处理成object),再加上引号就是json字符串了;
      前端接受到json字符串,就可以通过JSON.parse()等方法解析成json对象(即js对象)直接使用了

Json的数据类型

· 数字    (整数或浮点数)

· 字符串 (必须双引号)

· 逻辑值 (true 或 false)

· 数组 (在方括号中)

· 对象 (在花括号中,引号用双引)

null

Json和Python对象的对应

Json实例

settigs.py:

‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],  # 设置templates的路径为Django以前版本
# ‘DIRS‘: [],      # 注释掉该行,此为Django 2.0.1最新版本
# ‘django.middleware.csrf.CsrfViewMiddleware‘,
         ...省略默认配置
STATIC_URL = ‘/static/‘
TEMPLATE_DIRS = (os.path.join(BASE_DIR,  ‘templates‘),)  # 原配置
# 静态资源文件
STATICFILES_DIRS = (os.path.join(BASE_DIR, "statics"),)   # 现添加的配置,这里是元组,注意逗号

templates/ajax_jquery.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
<button onclick="func1()">Ajax提交</button>
</body>
<script src="/static/jquery-3.2.1.js"></script>
<script>
    function func1() {
        Test();
    }
    function Test() {
       $.post("/jquery_ajax_test/", function (data) {
    console.log(‘转换前:‘);
    console.log(data);            {# JSON字符串 #}
    console.log(typeof data);
    console.log(data["name"]);
    console.log(‘转换后:‘);       {# JSON对象 #}
    per = JSON.parse(data);
    console.log(per);
    console.log(typeof per);
    console.log(per["name"]);
})
    }
</script>
</html>

mysite2/urls.py

from django.contrib import admin
from django.urls import path
from blog import views
from django.conf.urls import url
urlpatterns = [
      # Jquery_Ajax
  url(r‘ajax-jquery/‘, views.ajax_jquery),
  # jquery_ajax_test
  url(r‘jquery_ajax_test/‘, views.jquery_ajax_test),
]

views.py

from django.shortcuts import render, HttpResponse
import datetime
# Jquery --> ajax
def ajax_jquery(request):
    # return HttpResponse("Hello ,Jquery_ajax")
    return render(request, ‘ajax_jquery.html‘)
# Jquery --> ajax
import json
def jquery_ajax_test(request):
    print(‘request.POST‘, request.POST)
    person={‘name‘: ‘FTL‘, ‘age‘: 24}
    obj = json.dumps(person)  # 字典转换为json格式的字符串
    return HttpResponse(obj)  # HTTPResponse只能返回字符串,这里返回前台json字符串

页面显示:

注意:JS可以打印类似Python中字典的对象内容

{# JS可以打印类似Python中字典的对象内容 #}
data = {"school": "Peking", "city": "Beijing"};
console.log(data["school"]);   {# Peking #}

带方法的json对象

person是一个json对象,因为它满足json规范:在json六大范畴且引号双引

function Test() {
    var person = {"name":"FTL",
          "sex":"men",
          "teacher":{
             "name":"HHH",
              "sex":"half_men",
          },
          "bobby":[‘basketball‘,‘running‘],
           "getName":function() {return 80;}
          };
    console.log(person.name);
    console.log(person.getName());
    console.log(person.teacher.name);
    console.log(person.bobby[0]);

json对象的方法:

json对象的方法:

parse() 用于从一个json字符串中解析出json对象,如
     var str = ‘{"name":"HHH","age":"23"}‘
     结果:JSON.parse(str)        ------>  Object  {age: "23",name: "yuan"}
stringify()用于从一个json对象解析成json字符串,如
     var c= {a:1,b:2}
     结果:  JSON.stringify(c)     ------>      ‘{"a":1,"b":2}‘
注意1:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。
注意2:
  a={name:"yuan"};   //ok
  b={‘name‘:‘yuan‘}; //ok
  c={"name":"yuan"}; //ok
  alert(a.name);  //ok
  alert(a[name]); //undefined
  alert(a[‘name‘]) //ok

JSON与XML比较

JSON与XML比较

· 可读性: XML胜出;

· 解码难度:JSON本身就是JS对象(主场作战),所以简单很多;

· 流行度: XML已经流行好多年,但在AJAX领域,JSON更受欢迎。

注解:其实本没什么json对象,只是我们自己这么称呼罢了,所谓的json数据就是指json字符串,在前端解析出来的对象就是js对象的一部分!

原文地址:https://www.cnblogs.com/ftl1012/p/json2.html

时间: 2024-10-30 06:48:31

Python学习---JSON学习180130的相关文章

Python学习—json模块

json模块 四个常用方法 son.dumps() 将python对象编码成为json的字符串格式(最常用的是字典,列表集合等都可以) json.dump() 将python对象编码成为json的字符串格式并写入文件 json.loads() 将json的字符串格式解码成python对象 json.load() 将文件中的json的字符串格式解码成python对象 例子 import json #将python对象编码成为json的字符串格式 d = {'name':'hahaha','bala

python数据分析入门学习笔记儿

学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分析相关python库的介绍(前言1~4摘抄自<利用python进行数据分析>) 1.Numpy: Numpy是python科学计算的基础包,它提供以下功能(不限于此): (1)快速高效的多维数组对象naarray (2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数 (3)用于读写硬盘

Python.python学习(1).学习规划

Python.python学习.学习规划 欢迎收看! 阅读此文表明你也是要学Python这门神奇的语言了.很好,来对地方了,先容我简单介绍一下这个博客系列. 这个系列的博客将会持续专注于Python这个语言的知识积累和开发经验. 编写这个系列,一方面是为了巩固我自己对Python的理解,另一方面也是希望能够分享我的经验,给初学者提供一定帮助.网上现有的各类教程已经汗牛充栋,在我学习的时候就曾参阅过许多教程与文章,它们讲解问题的思路各不相同,综合的阅读使得我最终能够整理起知识的碎片并正确地理解.所

【python标准库学习】thread,threading(二)多线程同步

继上一篇介绍了python的多线程和基本用法.也说到了python中多线程中的同步锁,这篇就来看看python中的多线程同步问题. 有时候很多个线程同时对一个资源进行修改,这个时候就容易发生错误,看看这个最简单的程序: import thread, time count = 0 def addCount(): global count for i in range(100000): count += 1 for i in range(10): thread.start_new_thread(ad

【python标准库学习】thread,threading(一)多线程的介绍和使用

在单个程序中我们经常用多线程来处理不同的工作,尤其是有的工作需要等,那么我们会新建一个线程去等然后执行某些操作,当做完事后线程退出被回收.当一个程序运行时,就会有一个进程被系统所创建,同时也会有一个线程运行,这个线程就是主线程main,在主线程中所创建的新的线程都是子线程,子线程通常都是做一些辅助的事.python中提供了thread和threading两个模块来支持多线程. python中使用线程有两种方式,第一种是用thread模块的start_new_thread函数,另一种是用threa

python第三方库学习之xlrd读取Excel文件

因为经常会涉及到从Excel表中导数据,所以就学习了python的xlrd来读取excel中的数据. 1.xlrd的安装 xlrd是python的第三方库,所以是需要自己安装的,可以在python的官网http://pypi.python.org/pypi/xlrd下载该模块来安装,也可以通过其他手段,比如easy_install或者pip啥的,我已经安装好pip所以就用最懒的方式来安装了pip install xlrd来安装. 2.分析excel文件的层级对象 要读取excel的数据,就要了解

《灰帽Python-黑客和逆向工程师的Python编程》学习记录

ctypes是Python语言的一个外部库,提供和C语言兼容的数据类型,可以很方便的调用C DLL中的函数. 操作环境:CentOS6.5 Python版本:2.66 ctypes是强大的,强大到本书以后介绍的几乎所有库都要基于此.使用它我们就能够调用动态链接库中函数,同时创建各种复杂的C数据类型和底层操作函数.毫无疑问,ctypes就是本书的基础. 第一章 搭建开发环境 1.3.2 使用动态链接库 from ctypes import * libc = CDLL("libc.so.6"

[Python学习]一、如何学习,学习资料

上手Python快一年了,用Python也开发了不少工具.项目,准备写一个系列来整理Python的学习. 1.Python的介绍: Python是一种面向对象的.解释型语言,发明与1989年. Python是一种高级语言,它在底层实现许多高级的数据结构,使得编程变得非常容易. Python的库非常丰富,它是大数据处理常用的语言的.开发快,效率相对高. Python应用广泛.比如豆瓣就是依靠Python实现的. Python运行平台广泛. 目前Python的版本已经到3.4, 但是Python2

python源码学习(一)——python的总体架构

python源码学习(一)——python的总体架构 学习环境: 系统:ubuntu 12.04 STLpython版本:2.7既然要学习python的源码,首先我们要在电脑上安装python并且下载python的源码,ubuntu 12.04 STL自带的python版本为2.7.3,这就可以了,接下来下载源码,下载python2.7.7的源代码,下载结束后解压文件,我们会看到如下文件结构:,接下来介绍一下,demo文件夹里放的是一些例子:Doc文件夹里放的是文档,Grammer是语法分析器,