os.system('echo "%s" | hadoop fs -put -f - /app/hdp/logs/json/a.json' %(json_string))
json_string=json.dumps({"a":"b"})
该文件是在HDFS中创建的,但是json格式错误。
它存储的格式是{a:b}
,没有双打引号,这不是一个合适的json格式。
这种方法有什么问题?
答案 0 :(得分:0)
尝试使用以下内容:
import subprocess, json
json_string=json.dumps({"a":"b"})
proc = subprocess.Popen('echo "{0}" | hadoop fs -put -f - /app/hdp/logs/json/a.json'.format(json_string), shell=True)
字符串格式应为"{"a":"b"}"
答案 1 :(得分:0)
import subprocess, json
json_string=json.dumps({"a":"b"})
#json_string=json_string.replace('"','\"') try escaping quotes too
proc = subprocess.run('echo {0} | hadoop fs -put -f - /app/hdp/logs/json/a.json'.format(json_string), shell=True)
答案 2 :(得分:0)
您将需要包含转义符
在shell终端中回显“ {” a“:” b“}”
输出: {a:b}