• 技术文章 >后端开发 >Python教程

    python如何读写json数据(代码)

    不言不言2018-09-13 17:48:45原创838
    本篇文章给大家带来的内容是关于python如何读写json数据(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    json

    使用 Python 语言来编码和解码 JSON 对象。
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。使用json函数需要导入json模块

    将 Python 对象编码成 JSON 字符串

    用于解码 JSON 数据。该函数返回 Python 字段的数据类型。

    基础命令

    将python对象编码成为json的字符串格式

    d = {'name':'sheen',
         'age':17}
    jsonStr = json.dumps(d) #{"name": "sheen", "age": 17} <class 'str'>
    
    l = [1,3,5,1.2]
    jsonList = json.dumps(l)    #[1, 3, 5, 1.2] <class 'str'>

    将获取的json字符串解码为python的对象

    pydict = json.loads(jsonStr)    #{'name': 'sheen', 'age': 17} <class 'dict'>
    
    pylist = json.loads(jsonList)   #[1, 3, 5, 1.2] <class 'list'>

    将python对象编码成为json的字符串格式并写入文件中

    with open('json.txt','w') as f :
        json.dump(d,f)

    将文件中的json字符串解码为python的对象

    with open('json.txt') as f:
        jsondict = json.load(f) #{'name': 'sheen', 'age': 17} <class 'dict'>

    json示例

    给100个不同的用户一个value值,存放到文件'json_dump.txt',并且是json格式
    json.dump()参数

    应该是一个非负的整型,如果是0,或者为空,则一行显示数据;否则会换行且按照indent的数量显示前面的空白

    将数据根据keys的值进行排序

    #给100个不同的用户一个value值
    #存放到文件'json_dump.txt',并且是json格式
    import json
    import string
    from random import choice
    
    keys = ['user'+str(i) for i in range(100)]
    values = string.ascii_lowercase+string.ascii_uppercase  #大小写字符串
    
    dict = {choice(keys):choice(values) for i in range(100)}
    
    with open('json_dump.txt','w') as f:
        #indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据;否则会换行且按照indent的数量显示前面的空白
        #sort_keys:将数据根据keys的值进行排序
        #separators = ("每个元素间的分隔符", “key和value之间的分隔符”)
        json.dump(dict,f,indent=4,sort_keys=True, separators=(';', '='))
    
    
    #为何最后文件不够100行?
    #因为随机选取的key值可能会重复,字典类型的key不允许重复,最后得到的数据会少于你给定的100次

    1763300125-5b9a282f018b7_articlex.png

    查询IP地址

    根据IP查询所在地、运营商等信息的一些API如下:

    1. 淘宝的API(推荐):http://ip.taobao.com/service/getIpInfo.php?ip=110.84.0.129
    2. 国外freegeoip.net(推荐):http://freegeoip.net/json/110.84.0.129 这个还提供了经纬度信息(但不一定准)
    3. 新浪的API:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=110.84.0.129
    4. 腾讯的网页查询(返回的非json格式): http://ip.qq.com/cgi-bin/searchip?searchip1=110.84.0.129
    5. ip.cn的网页(返回的非json格式):http://www.ip.cn/index.php?ip=110.84.0.129
    6. ip-api.com: http://ip-api.com/json/110.84.0.129

    上述的API接口,大多有一个特点是, 返回的直接是个json格式

    import json
    from urllib.request import urlopen
    
    # ip = input("请输入你要查询的Ip:")
    ip = '8.8.8.8'
    url = "http://ip.taobao.com/service/getIpInfo.php?ip=%s" %(ip)
    print(url)
    # 根据url获取网页的内容, 并且解码为utf-8格式, 识别中文;
    text = urlopen(url).read().decode('utf-8')
    # print(text,type(text))
    data = json.loads(text)['data']
    country = data['country']
    country_id = data['country_id']
    print(country,country_id)

    2162232030-5b9a2b9e3643c_articlex.png

    相关推荐:

    如何使用python读写json文件

    php数据库 读出JSON 及写入数据库,该如何解决

    以上就是python如何读写json数据(代码)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:python
    上一篇:Python中装饰器是什么?Python中装饰器的介绍 下一篇:关于python 下划线使用场景
    大前端线上培训班

    相关文章推荐

    • javascript与Python快速排序实例对比_javascript技巧• 在Python中使用glob模块查找文件路径的方法_基础知识• Python脚本后台运行的几种方式• 使用nodejs、Python写的一个简易HTTP静态文件服务器_node.js• 利用webqq协议使用python登录qq发消息源码参考_jquery

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网