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格式。
这种方法有什么问题?
发布于 2018-05-28 17:20:09
尝试使用以下命令:
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"}"
发布于 2018-05-28 22:42:22
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)发布于 2020-01-08 20:01:34
您需要包含转义字符
shell终端中的echo "{"a":"b"}“
输出:{a:b}
https://stackoverflow.com/questions/50560821
复制相似问题