Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-将字符串解析为json_Python_Json_String_User Input - Fatal编程技术网

Python-将字符串解析为json

Python-将字符串解析为json,python,json,string,user-input,Python,Json,String,User Input,我试图获取一个用户输入,并从中创建一个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)

我试图获取一个用户输入,并从中创建一个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)
因此,对于您的情况:

  • 首先用要发送的数据创建有效的数据结构(如字典)
  • 然后使用
    json.dumps
    将其转换为真正的json字符串并发送出去

  • 问题不是很清楚,你在问什么?你能提供一个更简洁的例子吗?哦,对!!只需要按原样发送数据..谢谢!@JaviDorfsman是的,发送你已经准备好的JSON字符串也是一个选项。但是如果你将它重写为
    JSON.dumps
    ,你的代码将变得更可读和可靠。