乐趣区

python-str-转换-json

使用 Python 编码和解析 Json

Python 内置了 json 包来帮助我们完成对 json 的操作。

针对 str 操作:将 Python 的字典结构导出到 json 使用 json.dumps(),将 json 读成 Python 的字典结构,使用 json.loads()。

针对对文件操作:分别使用 json.load() 函数和 json.dump() 函数。

# coding=gbk
import traceback
import json
file_name = '广州市_农贸市场_1717.txt'
f = open(file_name, 'r')
tmp = json.load(f)
print(type(tmp))
data = []
for i in tmp:
#    print(i)
#测试做一下格式转换
    dl = {"name":i["name"],
        "location_lat" : i["location"]["lat"],
        "location_lng" : i["location"]["lng"]
    }
    data.append(dl)
print(data)
with open('ceshi.txt', 'w', encoding="utf-8") as f:
    f.write(json.dumps(data, ensure_ascii=False))
    print('---wirte success---')

附上 广州市_农贸市场_1717.txt

[{“name”: “ 江南市场 ”, “location”: {“lat”: 23.179127, “lng”: 113.236457}, “address”: “ 广东省广州市白云区增槎路 926 号 ”, “province”: “ 广东省 ”, “city”: “ 广州市 ”, “area”: “ 白云区 ”, “street_id”: “9fbfeef24609615cece4a59b”, “detail”: 1, “uid”: “9fbfeef24609615cece4a59b”}, {“name”: “ 广州番禺清河市场 ”, “location”: {“lat”: 22.938501, “lng”: 113.401308}, “address”: “ 广东省广州市番禺区亚运大道 94 号 ”, “province”: “ 广东省 ”, “city”: “ 广州市 ”, “area”: “ 番禺区 ”, “street_id”: “bc57b5426b43342922f01731”, “telephone”: “(020)84629663”, “detail”: 1, “uid”: “bc57b5426b43342922f01731”}]

退出移动版