Python如何将以下内容转换为一个漂亮的json对象列表(就像我从API获得的一样)



这是我拥有的数据格式:

('Domain Name,Start Date,End Date,Attributed To,Tagsrn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'Domain Name,Start Date,End Date,Attributed To,Tagsrn'
'domain.com,2011-01-01,Active,Company A SA,rn')

如何将上面的数据转换为一个漂亮的json对象列表?像这样:

[
{'Domain Name': 'domain.com',
'Start Date': '2011-01-01',
'End Date': 'Active',
'Attributed To': 'Company A SA',
'Tags': 'None'}
{'Domain Name': 'domain.com',
'Start Date': '2011-01-01',
'End Date': 'Active',
'Attributed To': 'Company A SA',
'Tags': 'None'}
{'Domain Name': 'domain.com',
'Start Date': '2011-01-01',
'End Date': 'Active',
'Attributed To': 'Company A SA',
'Tags': 'None'}
{'Domain Name': 'domain.com',
'Start Date': '2011-01-01',
'End Date': 'Active',
'Attributed To': 'Company A SA',
'Tags': 'None'}]

到目前为止,我已经尝试过json.dumps、json.loads甚至csv.dictreader,但我似乎无法理解,如果初学者质疑,我很抱歉

我的方法是从输入字符串创建pandas数据帧。然后可以很容易地将该数据帧转换为JSON字符串。创建数据帧需要以下代码:

from io import StringIO
import pandas as pd
# Create your data frame
input_tuple = ('Domain Name,Start Date,End Date,Attributed To,Tagsrn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn')
# Create a continous string
input_str = ''.join(input_list)
# Create a dataframe from the string
df = pd.read_csv(StringIO(input_str), sep=',')

这个数据帧看起来是这样的:

Domain Name  Start Date End Date Attributed To  Tags
0  domain.com  2011-01-01   Active  Company A SA   NaN
1  domain.com  2011-01-01   Active  Company A SA   NaN
2  domain.com  2011-01-01   Active  Company A SA   NaN
3  domain.com  2011-01-01   Active  Company A SA   NaN
4  domain.com  2011-01-01   Active  Company A SA   NaN

然后可以使用函数to_json创建所需的JSON字符串:

# Convert dataframe to json
result = df.to_json(orient='records')

最终结果如下:

[{"Domain Name":"domain.com","Start Date":"2011-01-01","End Date":"Active","Attributed To":"Company A SA","Tags":null},{"Domain Name":"domain.com","Start Date":"2011-01-01","End Date":"Active","Attributed To":"Company A SA","Tags":null},{"Domain Name":"domain.com","Start Date":"2011-01-01","End Date":"Active","Attributed To":"Company A SA","Tags":null},{"Domain Name":"domain.com","Start Date":"2011-01-01","End Date":"Active","Attributed To":"Company A SA","Tags":null},{"Domain Name":"domain.com","Start Date":"2011-01-01","End Date":"Active","Attributed To":"Company A SA","Tags":null}]

最新更新