请教一个关于 Python repr 方法的问题

8 天前
 barantt01

示例代码如下

tmp = '{"{\"username\":\"juheso\",\"is_cache\":1}":3}'
print(tmp)
print(repr(tmp))
tmp_1 = r'{"{\"username\":\"juheso\",\"is_cache\":1}":3}'
print(tmp_1)

我运行之后的结果为

{"{"username":"juheso","is_cache":1}":3}
'{"{"username":"juheso","is_cache":1}":3}'
{"{\"username\":\"juheso\",\"is_cache\":1}":3}

我想要的结果其实是{"{\"username\":\"juheso\",\"is_cache\":1}":3}

但是为什么 repr() 没有效果呢?

我的 python 版本为 3.10

877 次点击
所在节点    Python
8 条回复
superrichman
8 天前
仔细琢磨

print('\"' == '"')
print(r'\"' == '\\"')
barantt01
8 天前
@superrichman 这两个都是 True 我知道,我的疑问是在 repr 方法上。因为在实际使用是这个 tmp 其实是一个变量,没法用 r''来表示
eccstartup
8 天前
```python
import json

s = '{"{\"username\":\"juheso\",\"is_cache\":1}":3}'
raw_s = json.dumps(s)[1:-1]
print(raw_s) # 输出: "Hello\\nWorld"
```

输出
`{\"{\"username\":\"juheso\",\"is_cache\":1}\":3}`

比较接近了
julyclyde
8 天前
你这个不是 repr 方法而是 repr 函数
ma46
7 天前
@julyclyde 内置函数 repr 调用的就是对象的__repr__方法
ma46
7 天前
对于 tmp 变量, 其内存里存的字符串就是{"{"username":"juheso","is_cache":1}":3}, 你还想 repr 输出什么东西来? 变量赋值里的 \ 根本就不是字符串的一部分, 它的作用是告诉编译器 " 是字符串的一部分

我觉得你还没理解转义字符
julyclyde
7 天前
@ma46 我知道啊。但是提问是方法而非函数这个错误依然是存在的
lijiachang
6 天前
tmp = r'{"{\"username\":\"juheso\",\"is_cache\":1}":3}'
print(tmp)

声明的时候就要加 r ,否则你就写个转换函数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1105047

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX