Python -将字符串解析为json



我试图获得用户输入并从中创建一个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()

您正在尝试将str值(看起来像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字符串并发送出去。

相关内容

  • 没有找到相关文章

最新更新