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.pyimport urllib.requestimport jsonpathimport 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()

    原文作者:萌新程序员
    原文地址: https://zhuanlan.zhihu.com/p/61048374
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞