专栏首页数据云团Python-数据解析-获取城市列表

Python-数据解析-获取城市列表

使用 JSONPath 将所有的城市名称提取出来,并保存在一个文件中。

{
  "state": 1,
  "message": "success",
  "content": {
    "rows": [],
    "data": {
      "allCitySearchLabels": {
        "A": [
          {
            "id": 601,
            "name": "鞍山",
            "parentId": 535,
            "code": "081600000",
            "isSelected": false
          },
          {
            "id": 105795,
            "name": "中国澳门特别行政区",
            "parentId": 562,
            "code": "330100000",
            "isSelected": false
          }
        ]
       }
      }
     }
}

① 访问 URL

创建一个文件,取名为 jsonLagou.py。然后,引用 urllib.request 模块,访问拉勾网的 URL,获取网页内容。

# jsonLagou.py
import urllib.request
import jsonpath
import json

url = "http://www.lagou.com/lbs/getAllCitySearchLabels.json"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}

request = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(request)
html = response.read()
print(html)

此时获得的 html 内容就是一个 JSON 格式的字符串。

② 读取城市名称列表

将字符串格式的 JSON 转换为 Python 对象,并使用 JSONPath 获取所有 name 节点的值,形成列表。

# 把 JSON 格式字符串转换成 Python 对象
jsonobj = json.loads(html)
# 从根节点开始,匹配 name 节点
city_list = jsonpath.jsonpath(jsonobj, "$..name")
print(city_list)

此时 city_list 变量中存储的就是所有的城市列表。

③ 将城市列表保存到本地

使用 json.dumps() 方法将列表转化为 JSON 格式的字符串,再将字符串写入本地文件。

# 打开或创建一个名为 city.json 的文件
file = open("city.json", w)

# 将列表序列化为 JSON 格式的字符串
content = json.dumps(city_list, ensure_ascii=False)
print(content)

# 将 JSON 格式的字符串写入本地文件
file.write(content)
file.close()

本文分享自微信公众号 - 数据云团(SmartData),作者:云团小楠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Django基础篇-模板加载静态文件

    在 settings.py 文件中添加 STATICFILES_DIRS,设置静态文件目录路径。

    小团子
  • Django Rest Framework 版本(上)

    在Django进阶篇 Rest framework (三) 中,有关版本的问题,用 restful 规范做开发接口的时候,用户请求 API,系统返回数据。但是难...

    小团子
  • Django实战-生鲜电商-登录|注册|激活

    完成了模型层,需要映射到数据库中,创建相应的表。在项目的 settings.py 文件中配置数据库,Django 有数据读写分离的配置方式。

    小团子
  • Json字符串和Json对象的简单总结

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机...

    用户1055830
  • ARC 环境下 dealloc 的使用误区

    在MRC时代,我们需要在 dealloc中做很多,比如释放对象,如今我们已经进入ARC时代,对于普通对象的释放,系统已经帮我们做好了;是不是我们就再也不用担心内...

    honey缘木鱼
  • python_web5

    星辉
  • Spring MVC 目录穿越漏洞(CVE-2018-1271)分析

    2018年04月05日,Pivotal公布了Spring MVC存在一个目录穿越漏洞(CVE-2018-1271)。Spring Framework版本5.0到...

    Seebug漏洞平台
  • python接口测试之mock(九)

    在http://www.cnblogs.com/weke/articles/6859021.html中对mock-server已经做了初步的介绍,今天...

    无涯WuYa
  • Java Web学习总结(八)——HttpServletResponse对象(二)

    请求重定向指:一个web资源收到客户端请求后,通知客户端去访问另外一个web资源,这称之为请求重定向。

    Java团长
  • 浙大版《C语言程序设计(第3版)》题目集 练习7-11 字符串逆序

    C you again 的博客

扫码关注云+社区

领取腾讯云代金券