学习是一个逐步发现自己无知的过程!

Python STR转JSON

str类型转换为 可处理的json类型

在处理数据格式中,不是所有是数据都是该有的样子比如我们下面的数据(如下数据例子),实际的数据量可不止如此。

dats = [{'host': 'sh_sirliu_1', 'ip': '127.0.0.1'}, {'host': 'sh_sirliu_2', 'host': '127.0.0.2'},{'host': 'sh_sirliu_3', 'host': '127.0.0.3'}]
data = json.loads(dats)
print(data)

TypeError: the JSON object must be str, bytes or bytearray, not list

实际报的错误:

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)

实际上这里就需要将数据格式转换成为我们可处理的数据格式 STRJSON

使用json转字典是报错,因为里面不是双引号,此时使用eval则不会报错

# 转为数据格式
list1 = eval(data)
print(list1, type(list1))
# 转换为字符串类型,返回json
j1 = json.dumps(list1)
print(j1, type(j1))
# 转换为json字符串类型,最后就可以处理了
tt = json.loads(j1)
for i in tt:
    print(i.get("zm"))

json.load(s)与json.dump(s) 的区别

json.load:表示读取文件,返回python对象

json.dump:表示写入文件,文件为json字符串格式,无返回

json.dumps:将python中的字典类型转换为字符串类型,返回json字符串

json.loads:将json字符串转换为字典类型,返回python对象

loaddump处理的主要是文件

loadsdumps处理的是字符串

赞(0)
未经允许不得转载:劉大帥 » Python STR转JSON

你的评论可能会一针见血! 抢沙发

登录

找回密码

注册