python无法从字符串获取字典

发布于 2025-01-10 03:08:16 字数 304 浏览 0 评论 0原文

我有一个子进程,它打印一个我想用作字典的字符串。

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蛮可爱 2025-01-17 03:08:16

使用内置的json模块;具体来说,json.loads()

json.loads() 输入一个字符串/文本对象并返回一个 Python 字典。然而,JSON 的语法对键和值使用双引号,因此您需要重新格式化字符串以使用双引号而不是单引号:

'{"name": "Bobby", "age": 141}\r\n'

然后我们可以使用 json 模块:

import json

my_string = '{"name": "Bobby", "age": 141}\r\n'
my_dic = json.loads(my_string)
print(my_dic, type(my_dic))

这将导致:

{'name': 'Bobby', 'age': 141} <class 'dict'>

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:

'{"name": "Bobby", "age": 141}\r\n'

Then we can use the json module:

import json

my_string = '{"name": "Bobby", "age": 141}\r\n'
my_dic = json.loads(my_string)
print(my_dic, type(my_dic))

Which will result:

{'name': 'Bobby', 'age': 141} <class 'dict'>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文