相关文章推荐
会开车的钱包  ·  eval() - JavaScript | MDN·  2 周前    · 
买醉的海豚  ·  《金华市加快发展保障性租赁住房实施意见》的政策解读·  1 年前    · 
卖萌的枇杷  ·  伊斯塔战灵_百度百科·  1 年前    · 
狂野的松树  ·  于涛 - 搜狗百科·  1 年前    · 
有胆有识的青蛙  ·  [Java] ...·  1 年前    · 
任性的火车  ·  如何使用Python获取嵌套JSON中的键值?·  1 年前    · 
Code  ›  Python-字符串str和json格式的转换「建议收藏」开发者社区
字符串函数 python函数 python eval
https://cloud.tencent.com/developer/article/2036579
鼻子大的煎饼果子
2 年前
作者头像
全栈程序员站长
0 篇文章

Python-字符串str和json格式的转换「建议收藏」

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 全栈程序员必看 > Python-字符串str和json格式的转换「建议收藏」

Python-字符串str和json格式的转换「建议收藏」

作者头像
全栈程序员站长
发布 于 2022-06-30 20:16:21
481 0
发布 于 2022-06-30 20:16:21
举报

大家好,又见面了,我是你们的朋友全栈君。

str转json

str转换为json格式,前提一定需要保证这个str的格式和json是一致的,即左边最外层是大括号,右边的最外层是大括号。如果不一致,推荐用正则进行拆分至和json格式一致 1. 通过json.loads进行转换

import json
str = '{"key": "wwww", "word": "qqqq"}'
j = json.loads(str)
print(j)
print(type(j))

但是值得注意的是, json中内部数据需要用双引号来包围,不能使用单引号 ,如刚才的写法,如果写成这样,就会发生错误:

str = “{‘key’: ‘wwww’, ‘word’: ‘qqqq’}“
j = json.loads(str)

2. 通过eval eval函数的官方解释为:将字符串str当成有效的表达式来求值并返回计算结果。 即通过eval可以把list,tuple,dict和string相互转化,例如:

a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
b = eval(a)
type(b)
a = "{1: 'a', 2: 'b'}"
b = eval(a)
type(b)
a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
b = eval(a)
type(b)
tuple

同样,值得注意的是,eval()可以通过运行系统的命令,如:

eval("__import__('os').startfile('notepad.exe')") #启动记事本程序

那么为了保证安全,当需要用户输入时,可以对用户输入进行敏感字符检查和过滤

3. literal_eval

和eval用法相同,都可以将字符串str解析成list,tuple,dict,而且避免了eval的安全性的问题

import ast 
a = "{1: 'a', 2: 'b'}"
 
推荐文章
会开车的钱包  ·  eval() - JavaScript | MDN
2 周前
买醉的海豚  ·  《金华市加快发展保障性租赁住房实施意见》的政策解读
1 年前
卖萌的枇杷  ·  伊斯塔战灵_百度百科
1 年前
狂野的松树  ·  于涛 - 搜狗百科
1 年前
有胆有识的青蛙  ·  [Java] 在JSP中读取POST的JSON数据 - 我爱我家喵喵 - 博客园
1 年前
任性的火车  ·  如何使用Python获取嵌套JSON中的键值?
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号