通常会有这么一个应用场景,会用python去处理json格式的web API,以“ip.taobao.com”的API为例,详情见http://ip.taobao.com/instructions.php
是一个查询ip地址归属地的接口,其中包括国家、地区和ISP这些信息,均为中文显示。
我会用如下方式获取API数据:
myjson = json.loads(urllib.urlopen(url).read())
如上函数使用了urllib和json这2个模块,其中urllib用于请求页面获取json格式的数据;而json模块用于返回json格式数据;但是当你使用print来输出”myjson“这个变量的时候会发现中文全是unicode显示,可以用:
newjson = json.dumps(myjson, ensure_ascii=False)
让其显示成中文,默认是以ASCII来解析code的,中文不在ASCII编码当中,自然无法显示,可以看到json.dumps的帮助信息也说明了设为False后以:
>>> help(json.dumps)
Help on function dumps in module json:
dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=Tr
e, cls=None, indent=None, separators=None, encoding='utf-8', default=None, **kw
Serialize ``obj`` to a JSON formatted ``str``.
If ``skipkeys`` is ``True`` then ``dict`` keys that are not basic types
(``str``, ``unicode``, ``int``, ``long``, ``float``, ``bool``, ``None``)
will be skipped instead of raising a ``TypeError``.
If ``ensure_ascii`` is ``False``, then the return value will be a
``unicode`` instance subject to normal Python ``str`` to ``unicode``
coercion rules instead of being escaped to an ASCII ``str``.
If ``check_circular`` is ``False``, then the circular reference check
for container types will be skipped and a circular reference will
result in an ``OverflowError`` (or worse).
If ``allow_nan`` is ``False``, then it will be a ``ValueError`` to
serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``) in
strict compliance of the JSON specification, instead of using the
JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``).
If ``indent`` is a non-negative integer, then JSON array elements and
object members will be pretty-printed with that indent level. An indent
level of 0 will only insert newlines. ``None`` is the most compact
representation.
If ``separators`` is an ``(item_separator, dict_separator)`` tuple
then it will be used instead of the default ``(', ', ': ')`` separators.
``(',', ':')`` is the most compact JSON representation.
``encoding`` is the character encoding for str instances, default is UTF-8.
``default(obj)`` is a function that should return a serializable version
of obj or raise TypeError. The default simply raises TypeError.
To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the
``.default()`` method to serialize additional types), specify it with
the ``cls`` kwarg.
>>>
最后附图一张,可以看到显示中文正常了:
分享到:
相关推荐
目的:Python 格式化打印json数据方法(展开状态) 环境: 系统:Win10 x64 环境: Pycharm Python 3.7.0 问题分析: Python下json手法的json在打印查看时,括号和数据都没有展开,查看起来比较困难。 解决方案: ...
一个供用户以Python Dict或JSON格式编写(科研中实验)配置的库,在代码中用点.读写属性,同时可以从命令行中读取参数配置并修改参数值。 支持字典内参数无限层级嵌套 自动版本检查 支持参数值限定为指定值(枚举)...
redis2json 这是一个快速而肮脏的脚本,它将redis转储到RAM中并打印出相应的JSON。用途您可以通过gzip通过管道传输输出并将其发送到文件,以进行快速的非redis数据备份或导出/迁移到另一个系统。 例如: ./redis_to_...
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、...
众所周知:python json 可以转换的json字符串,但是在将其转换为字典时,出现了乱序 字典是一个散列结构,亦即他自身根据key进行排序,无法保证顺序 import json jsonstr = '{"username":"string","age":"int",...
* 数据库统计显示(包括数据规模\占用内存等) * 格式化打印 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内...
项目需求:将kafka解析来的日志获取到数据库的变更记录,按照订单的级别和订单明细级别写入数据库,一条订单的所有信息包括各种维度信息均保存在一条json中,写入mysql5.7中。 配置信息: [Global] kafka_server=...
1. 前后端分离:前端 Echarts...3. 数据格式:JSON; 更多Python&Echarts版的数据可视化大屏源码: https://yydatav.blog.csdn.net/article/details/120705616 更多Java SpringBoot&Echarts版的数据可视化大屏源码: ...
再从Kafka中获取到JSON格式数据,打印出来。 编写生产者程序,将json文件数据发送给Kafka; 编写消费者程序,读取Kafka的json文件数据,并手动提交偏移量。 编写生产者程序,以通用唯一标识符UUID作为消息,发送给...
您可能感兴趣的文章:Python 格式化打印json数据方法(展开状态)通过python扫描二维码/条形码并打印数据Python中输入和输出(打印)数据实例方法Python实现爬取亚马逊数据并打印出Excel文件操作示例
它作为JSON最快的Python库进行,比标准json库或其他第三方库更正确。 它本机序列化 , , 和实例。 与其他Python JSON库相比,它的功能和缺点: 序列化dataclass实例的速度是其他库的40-50x 将datetime , date...
主要介绍了Python json模块dumps、loads操作,结合实例形式分析了Python使用json模块针对json数据的载入、读取、打印、编码转换等相关操作技巧,需要的朋友可以参考下
1、首先是获取网页的JSON数据 2、然后用迭代器把JSON数据内容打印出来查看 3、然后展示如何通过URL把网页的图片内容下载到本地
python tcpsocket 服务器程序,支持http json数据格式发送,支持log日志打印
1. 前后端分离:前端 ...3. 数据格式:JSON; 更多Python&Echarts版的数据可视化大屏源码: https://yydatav.blog.csdn.net/article/details/120705616 更多Java SpringBoot&Echarts版的数据可视化大屏源码: ...
post的时候,将data字典形式的参数用json包转换成json格式。 response = requests.post(url=‘XXXX’, headers=headers, data=json.dumps(raw)) 返回信息 print(response.text) 返回响应头 prin
6.2 读写JSON数据 6.3 解析简单的XML数据 6.4 增量式解析大型XML文件 6.5 将字典转换为XML 6.6 解析和修改XML 6.7 利用命名空间解析XML文档 6.8 与关系型数据库的交互 6.9 编码和解码十六进制数 6.10 编码...
即使用python爬取网站的json数据 ### **数据预处理:** 获取到的天气信息包括最高温,最低温都不是int格式的数字,通过对数据截取,将部分指标的数据变换为int类型 并对缺失值进行了处理 ````py my_imputer = ...
一、使用python3做webervice接口测试的第三方库选择suds-jurko库,可以直接pip命令直接下载,也可以在pypi官网下载压缩包进行手动安装 二、安装好后,导入Client:from suds.client import Client。发送一条请求 ...