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
Python 将字符串文件转换为json格式文件_Python_Python 2.7 - Fatal编程技术网

Python 将字符串文件转换为json格式文件

Python 将字符串文件转换为json格式文件,python,python-2.7,Python,Python 2.7,好的,假设我有一个名为“string.txt”的字符串文本文件,我想把它转换成json文本文件。 我该怎么办?我曾尝试使用“json.loads()”,但它对我来说从来都不起作用! 以下是我的文本文件中的一部分: rdian","id":"161428670566653"},{"category":"Retail and consumer merchandise","category_list":[{"id":"187937741228885","name":"Electronics Store

好的,假设我有一个名为“string.txt”的字符串文本文件,我想把它转换成json文本文件。 我该怎么办?我曾尝试使用“json.loads()”,但它对我来说从来都不起作用! 以下是我的文本文件中的一部分:

rdian","id":"161428670566653"},{"category":"Retail and consumer merchandise","category_list":[{"id":"187937741228885","name":"Electronics Store"},{"id":"191969860827280","name":"Photographic Services & Equipment"}
需要帮忙吗? 编辑: 我已使用此代码:

import json

f = open("string.txt", 'w')
f1 = open("stringJson.txt", 'r')


f.write(json.dumps(json.loads(f), indent=1))


f.close()
错误如下所示:

obj,end=self.raw\u decode(s,idx=\u w(s,0.end()) TypeError:应为字符串或缓冲区

import json
with open("string.txt", "rb") as fin:
    content = json.load(fin)
with open("stringJson.txt", "wb") as fout:
    json.dump(content, fout, indent=1)

请参见本例中的
您需要阅读文件的内容

obj, end = self.raw_decode(s, idx=_w(s, 0).end()) TypeError: expected string or buffer obj,end=self.raw_decode(s,idx=_w(s,0.end())类型错误:应为字符串或缓冲区

导入json f=打开(“string.txt”,“w”) f1=打开(“stringJson.txt”,“r”) data=json.loads(f1) f、 写入(json.dumps(数据,缩进=1)) f、 关闭()
这实际上取决于
txt
文件的结构。但假设您有一个结构化的
txt
文件,如下所示:

BASE|30-06-2008|2007|2|projected
BASE|30-06-2007|2010|1|projected
BASE|30-06-2007|2009|3|projected
BASE|30-06-2007|2020|2|projected
...
您可以使用如下脚本:

导入编解码器
导入json
将numpy作为np导入
作为pd进口熊猫
raw\u filepath=“your\u data.txt”
字段名称=[
“情景”,
“日期”,
“年”,
“季度”,
“价值”
]
data_array=np.genfromtxt(原始文件路径,分隔符=“|”),dtype=None,encoding=“utf-8”)
df=pd.DataFrame.from_记录(数据_数组)
df.columns=字段名称
结果=df.to_json(orient=“records”)
parsed=json.load(结果)
out\u json\u path=“your\u data.json”
###以.json格式保存数据帧
json.dump(
已解析,编解码器。打开(out_json_path,“w”,encoding=“utf-8”),排序键=False,缩进=4
)
解释

要在Numpy中加载数据集,我们可以使用
genfromtxt()
函数。我们可以指定数据文件名、分隔符(这是可选的,但经常使用),以及在有标题行时要跳过的行数。
genfromtxt()
函数有一个名为
dtype
的参数,用于指定每列的数据类型(此 参数是可选的)。在不指定类型的情况下,所有类型都将被强制转换为更通用/精确的类型,numpy将尝试 推断列的类型

在这一部分中,我们使用“记录”格式的json对数据帧进行编码/解码。请注意,此编码不会保留索引标签。这样,我们可以得到如下输出,如中所述:


首先,在string.txt=>
f=open(“string.txt”,“w”)
之前有两个双引号;其次,是JSON代码段(第一个代码块)被截断/丢失了一些。谷歌搜索了您的错误-这是第一个结果。看看它是否对您有帮助。@arzeramade轻声说-只是想更好地理解您的问题。文件是否包含换行符?在这种情况下,请发布一些完整的行。该快照没有帮助,因为它可能位于文件中需要的任何位置uld格式不适用于JSON,因此无法正确加载或根本无法加载。额外数据:第1行第102663列-第1行第106497列(字符102662-106496)这是error@arzeramade从错误中可以明显看出,文本文件的格式不完全适合作为JSON加载。您应该检查该文件-修复该问题,然后重试Shaung的解决方案。@arzeramade在指定范围内有什么?使用此选项检查:
print open(“string.txt”,“rb”).read()[102662:106497]
@Nicarus:这就是我告诉你的,我必须手动执行吗?为了将ti加载为json合适吗?@Nicarus:是的,我知道,但如何使文本对json加载有效?
BASE|30-06-2008|2007|2|projected
BASE|30-06-2007|2010|1|projected
BASE|30-06-2007|2009|3|projected
BASE|30-06-2007|2020|2|projected
...
>>>result = df.to_json(orient="records")
>>>parsed = json.loads(result)
>>>json.dumps(parsed, indent=4)  
[
    {
        "col 1": "a",
        "col 2": "b"
    },
    {
        "col 1": "c",
        "col 2": "d"
    }
]