python解码json
时间: 2023-05-21 09:06:08 浏览: 123
可以使用json模块中的loads()函数将JSON字符串解码为Python数据类型。以下是示例代码:
import json
json_string = '{"name": "John", "age": 30, "city": "New York"}'
python_dict = json.loads(json_string)
print(python_dict)
输出: {'name': 'John', 'age': 30, 'city': 'New York'}
相关问题
python rabbitmq json
在Python中使用RabbitMQ传递JSON消息,可以使用pika库来连接和操作RabbitMQ。同时,Python标准库中也提供了json模块来进行JSON编码和解码。
下面是一个简单的示例代码,演示如何使用pika库和json模块向RabbitMQ发送JSON消息和接收JSON消息:
```python
import pika
import json
# 创建RabbitMQ连接
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 声明队列
channel.queue_declare(queue='json_queue')
# 发送JSON消息
message = {'name': 'Alice', 'age': 25}
json_message = json.dumps(message)
channel.basic_publish(exchange='', routing_key='json_queue', body=json_message)
# 接收JSON消息
def callback(ch, method, properties, body):
json_message = json.loads(body)
print("Received JSON message:", json_message)
channel.basic_consume(queue='json_queue', on_message_callback=callback, auto_ack=True)
print('Waiting for JSON messages...')
channel.start_consuming()
# 关闭连接
connection.close()
```
在以上示例代码中,我们首先使用pika库创建了一个RabbitMQ连接,并声明了一个名为json_queue的队列。然后,我们使用json模块将一个Python字典对象转换为JSON字符串,并将其作为消息体发送到json_queue队列中。
接着,我们定义了一个回调函数callback,用于接收从json_queue队列中接收到的消息,并使用json模块将JSON字符串转换为Python字典对象,最后打印出接收到的消息。
最后,我们使用basic_consume方法来启动一个消费者,等待从json_queue队列中接收JSON消息。在接收到消息后,回调函数将被调用,将消息体传递给它进行处理。
需要注意的是,以上示例代码中使用了auto_ack参数来自动确认接收到的消息。这意味着一旦消息被接收,它就会被立即确认。如果你需要手动确认消息,则可以将auto_ack参数设置为False,并在处理完消息后调用basic_ack方法来手动确认消息。
python 操作json
以下是Python操作JSON的示例代码:
1. 将Python对象编码为JSON字符串
```python
import json
# 将字典编码为JSON字符串
dict1 = {'A': 'a', 'B': 'b', 'C': 'c'}
en_json = json.dumps(dict1)
print(type(en_json), en_json)
# 将列表编码为JSON字符串
lst = ['aa', 'bb', 'cc']
lst_json = json.dumps(lst)
print(type(lst_json), lst_json)
# 将字符串编码为JSON字符串
s = 'I love you!'
s_json = json.dumps(s)
print(type(s_json), s_json)
# 注意:集合类型的对象是不可以JSON序列化的
_set = {'aaa', 'bbb'}
# set_json = json.dumps(_set) # 报错:TypeError: Object of type set is not JSON serializable
```
2. 将JSON字符串解码为Python对象
```python
import json
# 将JSON字符串解码为字典
en_json = '{"A": "a", "B": "b", "C": "c"}'
de_json = json.loads(en_json)
print(type(de_json), de_json)
# 将JSON字符串解码为列表
lst_json = '["aa", "bb", "cc"]'
de_json = json.loads(lst_json)
print(type(de_json), de_json)
# 将JSON字符串解码为字符串
s_json = '"I love you!"'
de_json = json.loads(s_json)
print(type(de_json), de_json)
# 注意:集合类型的对象是不可以JSON序列化的
# set_json = '{"aaa", "bbb"}'
# de_json = json.loads(set_json) # 报错:Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
```
3. 使用eval()解析JSON字符串(不推荐使用)
```python
import json
# 使用eval()解析JSON字符串
en_json = '{"X": "x", "Y": "y", "Z": "z"}'
de_json = eval(en_json)
print(type(de_json), de_json)
```
阅读全文
相关推荐














