如何使用管道读取字典输出
时间: 2023-07-20 18:23:28 浏览: 35
如果您的程序的输出是一个字典格式的字符串,您可以使用管道(或重定向)将其输出到另一个程序中,然后在另一个程序中读取该字符串并将其解析为字典。
以下是一个简单的示例,说明如何使用管道将字典格式的字符串输出到另一个Python程序中并解析该字符串:
**程序1:**
```python
import json
data = {"name": "Tom", "age": 18, "gender": "male"}
json_str = json.dumps(data)
print(json_str)
```
输出结果为:
```
{"name": "Tom", "age": 18, "gender": "male"}
```
将该程序的输出通过管道传递给另一个程序,例如:
```
python program1.py | python program2.py
```
**程序2:**
```python
import sys
import json
# 从标准输入中读取数据
input_data = sys.stdin.read()
# 将JSON格式的字符串解析为字典
data = json.loads(input_data)
# 输出字典中的数据
print(data["name"])
print(data["age"])
print(data["gender"])
```
在程序2中,使用sys.stdin.read()函数从标准输入中读取数据,该函数会等待从管道中传递的数据。然后,使用json.loads()函数将JSON格式的字符串解析为字典。最后,输出字典中的数据。
运行程序1和程序2的命令后,程序2会输出:
```
Tom
18
male
```
这样就完成了通过管道读取字典输出的过程。