python无法从字符串获取字典
我有一个子进程,它打印一个我想用作字典的字符串。
b"{'name': 'Bobby', 'age': 141}\r\n"
我正在使用解码输出。
d = p.stdout.read().decode("utf-8").strip()
为什么我无法将其用作字典? d['name']
返回 TypeError:字符串索引必须是整数
有谁知道发生了什么?这是某种编码问题吗?
干杯, 克里斯
I have a subprocess that prints a string that I would like to use as a dictionary.
b"{'name': 'Bobby', 'age': 141}\r\n"
I am decoding the output using.
d = p.stdout.read().decode("utf-8").strip()
Why am I unable to use it as a dictionary? d['name']
returns TypeError: string indices must be integers
Does anyone know what is going on? Is it some kind of encoding issue?
Cheers,
Chris
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用内置的
json
模块;具体来说,json.loads()
。json.loads()
输入一个字符串/文本对象并返回一个 Python 字典。然而,JSON 的语法对键和值使用双引号,因此您需要重新格式化字符串以使用双引号而不是单引号:然后我们可以使用
json
模块:这将导致:
Use the inbuilt
json
module; speficially,json.loads()
.json.loads()
inputs a string/text object and returns a Python dictionary. JSON's syntax uses double quotes for keys and values, however, so you'd need to reformat your string to use double quotes instead of single quotes:Then we can use the
json
module:Which will result: