Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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读取普通txt文件并转换为json?_Python_Json_Csv - Fatal编程技术网

如何使用python读取普通txt文件并转换为json?

如何使用python读取普通txt文件并转换为json?,python,json,csv,Python,Json,Csv,我的当前代码: try: recipients = { 'HBRj6x6huUKyWtuv643DRrrCbkd2kDj2Z6': 50.0 , 'HNGY9f6Hh6uiVYcoGUnW3xCRVToBP9LujR': 50.0 , 'HPcWvavNTR1qywMzq1figttGddHnMGHGWx': 50.0 , 'H88DbndzTeN66Q9RyVeiPsDYWwevJph

我的当前代码:

try:
    recipients = { 'HBRj6x6huUKyWtuv643DRrrCbkd2kDj2Z6': 50.0
                 , 'HNGY9f6Hh6uiVYcoGUnW3xCRVToBP9LujR': 50.0
                 , 'HPcWvavNTR1qywMzq1figttGddHnMGHGWx': 50.0
                 , 'H88DbndzTeN66Q9RyVeiPsDYWwevJph3Lx': 50.0
                 , 'HG818gFwAVfNGZKT8F9qv9aj2du7QZEuMP': 50.0
                 , 'HFY7mMZuUcohP3bgLAnQrLxuWxDqcXEydW': 50.0
                 , 'HBrvtTteTARdehFYWYmok4HaQp3TvFiGGw': 50.0
                 , 'HMT7agiynUhR656GTaRUsHndSEFQVR2n2D': 50.0
                 , 'HNrvbV9aqRnJ6ZJ1e9sY9CDsJFqoTFaFch': 50.0
                 , 'HQBiwms9cVrcVFJ2fKVbhab666JePeRTnz': 50.0
                 }
    bitcoind.sendmany("", recipients)
Traceback (most recent call last):
  File "C:\Users\X\Desktop\sendmany.py", line 11, in <module>
    data = json.load(data_file)
  File "C:\Python27\lib\json\__init__.py", line 290, in load
    **kw)
  File "C:\Python27\lib\json\__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 3 (char 2)
我正在尝试从一个包含如下列表的普通txt文件中读取
收件人JSON

HBRj6x6huUKyWtuv643DRrrCbkd2kDj2Z6
HNGY9f6Hh6uiVYcoGUnW3xCRVToBP9LujR
HPcWvavNTR1qywMzq1figttGddHnMGHGWx
H88DbndzTeN66Q9RyVeiPsDYWwevJph3Lx
HG818gFwAVfNGZKT8F9qv9aj2du7QZEuMP
HFY7mMZuUcohP3bgLAnQrLxuWxDqcXEydW
HBrvtTteTARdehFYWYmok4HaQp3TvFiGGw
HMT7agiynUhR656GTaRUsHndSEFQVR2n2D
HNrvbV9aqRnJ6ZJ1e9sY9CDsJFqoTFaFch
HQBiwms9cVrcVFJ2fKVbhab666JePeRTnz
如何以编程方式将该普通txt转换为类似JSON的格式(添加(
{:和50.0 etc
)?我尝试了以下方法:

with open('data.json') as data_file:    
    data = json.load(data_file)

try:
    recipients = (data)
错误:

try:
    recipients = { 'HBRj6x6huUKyWtuv643DRrrCbkd2kDj2Z6': 50.0
                 , 'HNGY9f6Hh6uiVYcoGUnW3xCRVToBP9LujR': 50.0
                 , 'HPcWvavNTR1qywMzq1figttGddHnMGHGWx': 50.0
                 , 'H88DbndzTeN66Q9RyVeiPsDYWwevJph3Lx': 50.0
                 , 'HG818gFwAVfNGZKT8F9qv9aj2du7QZEuMP': 50.0
                 , 'HFY7mMZuUcohP3bgLAnQrLxuWxDqcXEydW': 50.0
                 , 'HBrvtTteTARdehFYWYmok4HaQp3TvFiGGw': 50.0
                 , 'HMT7agiynUhR656GTaRUsHndSEFQVR2n2D': 50.0
                 , 'HNrvbV9aqRnJ6ZJ1e9sY9CDsJFqoTFaFch': 50.0
                 , 'HQBiwms9cVrcVFJ2fKVbhab666JePeRTnz': 50.0
                 }
    bitcoind.sendmany("", recipients)
Traceback (most recent call last):
  File "C:\Users\X\Desktop\sendmany.py", line 11, in <module>
    data = json.load(data_file)
  File "C:\Python27\lib\json\__init__.py", line 290, in load
    **kw)
  File "C:\Python27\lib\json\__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 3 (char 2)
回溯(最近一次呼叫最后一次):
文件“C:\Users\X\Desktop\sendmany.py”,第11行,在
data=json.load(数据文件)
文件“C:\Python27\lib\json\\ uuuuu init\uuuuuu.py”,第290行,正在加载中
**千瓦)
文件“C:\Python27\lib\json\\ uuuuu init\uuuuuu.py”,第338行,加载
返回\u默认\u解码器。解码
文件“C:\Python27\lib\json\decoder.py”,第366行,在decode中
obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
文件“C:\Python27\lib\json\decoder.py”,第382行,原始解码
obj,end=self.scan_一次(s,idx)
ValueError:应为属性名称:第1行第3列(字符2)

这很简单,通过从文件行构建数据结构(例如字典),然后使用
json.dumps()
将其转换为json:

import json

requests = {}
with open('data.json') as infile:  # though that data really isn't in JSON format
    for line in infile:
        requests[line.strip()] = 50


# now to JSON stuff with `answer`

print(json.dumps(answer))

在我看来,这更像是一个散列,而不是JSON。我很确定您的文件不包含JSONdata@inspectorG4dget,是的,纯文本文件的每一行都有散列。那么,您是在试图找出如何获取创建每个散列的值吗?这里需要一些说明。我想您是说您想将纯文本转换为json。是吗你说你代码段中名为“data.jsoin”的文件应该是你的“纯文本”输入文件吗?@inspectorG4dget,我要做的是:向每个收件人发送50个,每个哈希=一个收件人,要做到这一点,它必须看起来像{‘哈希’:amount,}JSON?,我希望能够从纯文本中读取这些散列,并以编程方式添加数量和{':,}很好,但是,当涉及到try:part时,它抛出以下内容:错误:值是str类型,预期为obj,有什么想法吗?发现输出是:{“H7zEUSuKKRzvK7BkPiHuHApGo4HnaCuGbV”:“50”,…}它必须是这样的:{'H7zEUSuKKRzvK7BkPiHuHApGo4HnaCuGbV':50,…},如何将“to”和“remove”从50中更改?我不熟悉bitconid.sendmanny,但它的代码似乎就在这里:快速查看一下,您可能希望只传递receipt_dict而不是json_字符串。{“h7zeusukrzvkbkbihuhapgo4hnacugbv”:“50”,…}似乎是指python字典(看起来非常类似于json),其值是字符串“50”,而另一个表达式的值似乎是整数50。在我提供的代码片段中,只需更改get_value()函数返回的值。如果让它返回“50”,您将得到字符串。按原样,您将得到整数。非常感谢,因为值是固定的50,我所做的只是:receive_dict[hash_value]=50,并删除了def get_value(hash_value)…现在一切都很好。谢谢!您的意思是
请求[line.strip()]=50