gpt4 book ai didi

python - 将 json-ish 列表逐行写入 csv,在 python 中用于比特币地址

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:28 25 4
gpt4 key购买 nike

我正在查询 onename api努力获取所有用户的比特币地址。

目前我将所有用户信息作为 json 式列表获取,然后将输出通过管道传输到文件,它看起来像这样:

[{'0': {'owner_address': '1Q2Tv6f9vXbdoxRmGwNrHbjrrK4Hv6jCsz', 'zone_file': '{"avatar": {"url": "https://s3.amazonaws.com/kd4/111"}, "bitcoin": {"address": "1NmLvYVEZqPGeQNcgFS3DdghpoqaH4r5Xh"}, "cover": {"url": "https://s3.amazonaws.com/dx3/111"}, "facebook": {"proof": {"url": "https://facebook.com/jasondrake1978/posts/10152769170542776"}, "username": "jasondrake1978"}, "graph": {"url": "https://s3.amazonaws.com/grph/111"}, "location": {"formatted": "Mechanicsville, Va"}, "name": {"formatted": "Jason Drake"}, "twitter": {"username": "000001"}, "v": "0.2", "website": "http://1642.com"}', 'verifications': [{'proof_url': 'https://facebook.com/jasondrake1978/posts/10152769170542776', 'service': 'facebook', 'valid': False, 'identifier': 'jasondrake1978'}], 'profile': {'website': 'http://1642.com', 'cover': {'url': 'https://s3.amazonaws.com/dx3/111'}, 'facebook': {'proof': {'url': 'https://facebook.com/jasondrake1978/posts/10152769170542776'}, 'username': 'jasondrake1978'}, 'twitter': {'username': '000001'}, 'bitcoin': {'address': '1NmLvYVEZqPGeQNcgFS3DdghpoqaH4r5Xh'}, 'name': {'formatted': 'Jason Drake'}, 'graph': {'url': 'https://s3.amazonaws.com/grph/111'}, 'location': {'formatted': 'Mechanicsville, Va'}, 'avatar': {'url': 'https://s3.amazonaws.com/kd4/111'}, 'v': '0.2'}}}]

我真正感兴趣的是字段 {"address": "1NmLvYVEZqPGeQNcgFS3DdghpoqaH4r5Xh"},其余的我不需要,我只想要每个用户的地址。

有没有一种方法可以使用 python 只将地址写入文件?

我试着把它写成这样:

1NmLvYVEZqPGeQNcgFS3DdghpoqaH4r5Xh,
1GA9RVZHuEE8zm4ooMTiqLicfnvymhzRVm,
1BJdMS9E5TUXxJcAvBriwvDoXmVeJfKiFV,
1NmLvYVEZqPGeQNcgFS3DdghpoqaH4r5Xh,
...

等等。

我尝试了多种使用dumpdumps 等的不同方法,但我还不能确定。

我的代码是这样的:

import os
import json
import requests
#import py2neo
import csv


# set up authentication parameters
#py2neo.authenticate("46.101.180.63:7474", "neo4j", "uni-bonn")

# Connect to graph and add constraints.
neo4jUrl = os.environ.get('NEO4J_URL',"http://46.101.180.63:7474/db/data/")
#graph = py2neo.Graph(neo4jUrl)

# Add uniqueness constraints.
#graph.run("CREATE CONSTRAINT ON (q:Person) ASSERT q.id IS UNIQUE;")

# Build URL.
apiUrl = "https://api.onename.com/v1/users"
# apiUrl = "https://raw.githubusercontent.com/s-matthew-english/26.04/master/test.json"

# Send GET request.
Allusersjson = requests.get(apiUrl, headers = {"accept":"application/json"}).json()

#print(json)])
UsersDetails=[]
for username in Allusersjson['usernames']:
usernamex= username[:-3]
apiUrl2="https://api.onename.com/v1/users/"+usernamex+"?app-id=demo-app-id&app-secret=demo-app-secret"
userinfo=requests.get(apiUrl2, headers = {"accept":"application/json"}).json()
# try:
# if('bitcoin' not in userinfo[usernamex]['profile']):
# continue
# else:
# UsersDetails.append(userinfo)
# except:
# continue
try:
address = userinfo[usernamex]["profile"]["bitcoin"]["address"]
UsersDetails.append(address)
except KeyError:
pass # no address

out = "\n".join(UsersDetails)
print(out)
open("out.csv", "w").write(out)

# f = csv.writer(open("test.csv", "wb+"))


# Build query.
query = """
RETURN {json}
"""

# Send Cypher query.
# py2neo.CypherQuery(graph, query).run(json=json)
# graph.run(query).run(json=json)

#graph.run(query,json=json)

无论如何,在这种情况下,将这些地址写成 csv 的最佳方法是什么:/


更新

我运行了它,一开始它起作用了,但后来我得到了以下错误: enter image description here

最佳答案

而不是将所有信息添加到 UsersDetails 列表中

UsersDetails.append(userinfo)

您可以只添加相关部分(地址)

try:
address = userinfo[usernamex]["profile"]["bitcoin"]["address"]
UsersDetails.append(address)
except KeyError:
pass # no address
except TypeError:
pass # illformed data

将值打印到屏幕上:

out = "\n".join(UsersDetails)  
print(out)

(将“\n”替换为“,”以逗号分隔输出,而不是每行一个)

保存到文件:

open("out.csv", "w").write(out)

关于python - 将 json-ish 列表逐行写入 csv,在 python 中用于比特币地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39308153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com