Python - 将字符串解析为JSON

0 投票
1 回答
809 浏览
提问于 2025-04-18 06:00

我正在尝试获取用户输入,然后根据这个输入创建一个json对象,并通过tcp套接字发送出去。但是我发送的json对象不对,因为服务器无法解析它(如果我直接从代码发送json,它就能正常工作)。以下是我的代码:

import socket
import json

TCP_IP = '132.72.213.108'
TCP_PORT = 6666
BUFFER_SIZE = 1024

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
typeText = raw_input("Enter the type: ")
argumentsText = raw_input("Enter arguments: ")
while (typeText != "end"):
  argumentsText = argumentsText.replace(",","\",\"");
  argumentsText = "\"" + argumentsText + "\""
  data = '{"type":'+typeText+',"parameters":['+argumentsText+']}'
  print(str({'type':typeText,'parameters':[argumentsText]}))
  s.send(json.dumps(data))
  result = json.loads(s.recv(1024))
  print("received: " + str(result)+"\n")
  typeText = raw_input("Enter the type: ")
  argumentsText = raw_input("Enter arguments: ")
s.close()

1 个回答

1

你想把一个看起来像JSON的字符串转换成真正的JSON字符串。

json.dumps 是用来把Python中的变量,比如字典,转换成JSON字符串的。

dct = {}
dct["a"] = "Ahahaha"
dct["b"] = 3.14

import json

print json.dumps(dct)

所以对于你的情况:

  1. 首先,创建一个有效的数据结构(比如字典),里面放你要发送的数据。
  2. 然后使用 json.dumps 把它转换成真正的JSON字符串,然后发送出去。

撰写回答